我正在尝试在点击流数据中指定会话。我根据月份和 userId 对行进行分组,并尝试创建另一个变量会话,该会话查看 diff_days 列,如果 > 0.00209 则增加 on ,否则保持之前的值。所以基本上我正在尝试创建会话变量并同时在其上使用滞后版本。组中的第一行始终为 session = 1。
因此,例如,此数据是 group_by 中的组之一:
ID Month diff_days
2 0 NA
2 0 0.0002
2 0 0.001
2 0 0.01
2 0 0.00034
2 0 0.1
2 0 0.3
2 0 0.00005
我想在每个组中创建会话变量,如下所示:
ID Month diff_days session
2 0 NA 1
2 0 0.0002 1
2 0 0.001 1
2 0 0.01 2
2 0 0.00034 2
2 0 0.1 3
2 0 0.3 4
2 0 0.00005 4
我正在使用但没有给出正确答案的代码:
data <- data %>% group_by(ID, Month)
%>% mutate(session = ifelse(row_number() == 1, 1 ,
ifelse(diff_days < 0.0209, lag(session) , lag(session) + 1))) %>% ungroup()
我已经为此苦苦挣扎了很长一段时间,因此将不胜感激任何帮助。
谢谢!