目前我正在撰写硕士论文,但是,在多个条件下组合行时遇到一些问题。我在下面说明了我的问题和期望的结果。我希望你可以帮助我 :)。
这是我的数据集的示例:
df <- data.frame(
userID = c(1, 1, 1, 1, 1, 2, 2, 3, 3, 3, 3),
sessionID = c(1, 2, 3, 4, 5, 1, 2, 1, 2, 3, 4),
date = as.Date(c("2019-03-15", "2019-03-18", "2019-03-19", "2019-03-21","2019-03-30", "2019-04-05",
"2019-06-06", "2019-11-22", "2019-12-22", "2019-12-24", "2020-01-15"),
format = "%Y-%m-%d"),
purchase=c(0,1,0,0,0,0,0,0,0,1,0))
现在,我通过 diff 通过 dplyr 计算了差异:
library(dplyr)
df <- df %>%
group_by(userID) %>%
mutate(diff = date - lag(date))
但是,如果行之间的差异
我已经在 dplyr 中使用过滤器和汇总功能尝试了很多方法,但它没有给出所需的结果。另外,我真的不知道如何包含购买条件。
我想要的结果是这样的:
df2 <- data.frame(
userID = c(1, 1, 2, 2, 3, 3, 3),
sessionID = c("1 + 2", "3 + 4 + 5", "1", "2", "1", "2 + 3", "4"),
date.start = as.Date(c("2019-03-15","2019-03-19", "2019-04-05",
"2019-06-06", "2019-11-22", "2019-12-22", "2020-01-15"),
format = "%Y-%m-%d"),
date.end = as.Date(c("2019-03-18", "2019-03-30", "2019-04-05", "2019-06-06",
"2019-11-22", "2019-12-24", "2020-01-15"), format = "%Y-%m-%d"),
purchase=c(1,0,0,0,0,1,0))
我希望你可以帮助我 :)
提前致谢!