条件滞后函数
Conditional lag function
数据基于 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
我正在尝试实现一个变异滞后函数,它将 return 给定访问者给定访问的先前页面路径。
例如,新列 prev_path
将特定于 visitorid 和 visitid,并且会滞后 Hit# 1,但会 return 一个 <NA>
当在 Visit 的情况下不可用时1, 命中 2.
我们可以做一个group_by选项
library(dplyr)
df1 %>%
group_by(VisitorId, VisitId) %>%
mutate(prev_path = case_when(lag(`Hit#`) == `Hit#` -1 ~ lag(pathPath),
TRUE ~ NA_integer_))
这是你想要做的吗?
library(dplyr)
df %>%
group_by(VisitorId, VisitId) %>%
mutate(prev_path = ifelse(lag(`Hit#`) == `Hit#` - 1, lag(pagePath), NA))
数据基于 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
我正在尝试实现一个变异滞后函数,它将 return 给定访问者给定访问的先前页面路径。
例如,新列 prev_path
将特定于 visitorid 和 visitid,并且会滞后 Hit# 1,但会 return 一个 <NA>
当在 Visit 的情况下不可用时1, 命中 2.
我们可以做一个group_by选项
library(dplyr)
df1 %>%
group_by(VisitorId, VisitId) %>%
mutate(prev_path = case_when(lag(`Hit#`) == `Hit#` -1 ~ lag(pathPath),
TRUE ~ NA_integer_))
这是你想要做的吗?
library(dplyr)
df %>%
group_by(VisitorId, VisitId) %>%
mutate(prev_path = ifelse(lag(`Hit#`) == `Hit#` - 1, lag(pagePath), NA))