Я пытаюсь найти общее количество пользователей в df1, удовлетворяющих условиям, указанным в df2, но постоянно получаю сообщение об ошибке.
df1 выглядит так:
id step1 step2
1 session_start NA
2 session_start NA
3 session_start sign_up
4 session_start sign_up
5 session_start sign_up
6 sign_up session_start
df1 <- Classes ‘grouped_df’, ‘tbl_df’, ‘tbl’ and 'data.frame': 6 obs. of 3 variables:
$ id : chr "1" "2" "3" "4" ...
$ step1: chr "session_start" "session_start" "session_start" "session_start" ...
$ step2: chr NA NA "sign_up" "sign_up" ..
df2 выглядит следующим образом:
step1 step2 count
session_start sign_up 0
sign_up in_screen 0
in_screen click_banner 0
session_stop session_stop 0
df2 <- structure(c("session_start", "sign_up", "0", "sign_up",
"in_screen", "0", "in_screen", "click_banner", "0", "session_stop",
"session_stop", "0", .Dim = c(3L, 4L), .Dimnames = list(c("step1", "step2",
"count"), NULL))
В столбце df2$count
я хотел бы показать, сколько (сумма) пользователей выполнили df2$step1
и df2$step2
в этом порядке.В приведенном выше примере кода первая строка в df2$count
будет выводить 3 , поскольку 3 пользователей в df1 завершили session_start
как df1$step1
и sign_up
как df1step2
.
Предыдущие попытки
Когда я пытаюсь сделать это вручную с помощью этого кода, все работает нормально:
count <- sum(df1$step1 == "session_start" & df1$step2 == "sign_up", na.rm = TRUE)
Однако, когда я заменяю "session_start" и "sign_up"с динамическими значениями я получаю сообщение об ошибке «Ошибка в test8 $ step1: $ Оператор недопустим для атомарных векторов»:
df2$count <- sum(df1$step1 == df2$step1 & df1$step2 == df2$step2, na.rm = TRUE)
Я пытался заменить «$» на «[]», но все равно получаю »Ошибка: столбцы session_start
, sign_up
, in_screen
, click_banner
, session_stop
не найдены ":
df2[count] <- sum(df1[step1] == df2[step1] & df1[step2] == df2[step2], na.rm = TRUE)
Идеальный ответ:
Я бы хотел бытьвозможность добавить дополнительный столбец к данным, как показано ниже.Вы можете помочь?Большое спасибо заранее, если так!
step1 step2 count
session_start sign_up 3
sign_up in_screen 0
in_screen click_banner 0
session_stop session_stop 0