基于来自Kaggle here的数据集并提取到R中的数据。
使用以下结构:
Index VisitorId VisitId Visit# Hit# pagePath
0 000722514342430295 1470093727 1 1 /home
1 000722514342430295 1470093727 1 3 /google+redesign/apparel
2 000722514342430295 1470093727 1 4 /asearch.html
3 000722514342430295 1470093727 1 5 /asearch.html
4 0014659935183303341 1470037282 1 1 /home
5 0015694432801235877 1470043732 1 1 /home
6 0015694432801235877 1470043732 1 2 /google+redesign/electronics
7 0015694432801235877 1470043732 1 3 /google+redesign/apparel/men++s/men++s+t+shirts
8 0015694432801235877 1470043732 1 4 /google+redesign/apparel/kid+s/kid+s+infant
9 0015694432801235877 1470043732 1 5 /google+redesign/apparel/kid+s/kid+s+infant/quickview
我正在尝试实现一个mutate lag函数,该函数将返回给定访问者给定访问的先前页面路径。
例如,新列prev_path
既是visitorid又是visitid特定的,并且将Hit#滞后1,但在访问1,点击2的情况下不可用时将返回<NA>
。 / p>
答案 0 :(得分:2)
这是您要做什么吗?
library(dplyr)
df %>%
group_by(VisitorId, VisitId) %>%
mutate(prev_path = ifelse(lag(`Hit#`) == `Hit#` - 1, lag(pagePath), NA))
答案 1 :(得分:1)
我们可以执行group_by选项
library(dplyr)
df1 %>%
group_by(VisitorId, VisitId) %>%
mutate(prev_path = case_when(lag(`Hit#`) == `Hit#` -1 ~ lag(pathPath),
TRUE ~ NA_integer_))