R 如何按用户将网站活动分组为会话?

R 如何按用户将网站活动分组为会话?,r,dplyr,R,Dplyr,假设我有一个这样的数据框架,其中有两个用户和一些已经按会话分组的网站活动 图书馆(dplyr) df您可以使用dplyr进行以下操作: library(dplyr) df %>% group_by(user) %>% mutate(session = cumsum(ifelse(activity == "new", 1, 0))) # A tibble: 10 x 3 # Groups: user [2] user activity session <

假设我有一个这样的数据框架,其中有两个用户和一些已经按会话分组的网站活动

图书馆(dplyr)


df您可以使用
dplyr
进行以下操作:

library(dplyr)
df %>%
  group_by(user) %>%
  mutate(session = cumsum(ifelse(activity == "new", 1, 0)))
# A tibble: 10 x 3
# Groups:   user [2]
   user  activity session
   <chr> <chr>      <dbl>
 1 A     new            1
 2 A     same           1
 3 A     same           1
 4 A     new            2
 5 A     same           2
 6 B     new            1
 7 B     new            2
 8 B     same           2
 9 B     same           2
10 B     new            3
库(dplyr)
df%>%
分组依据(用户)%>%
变异(会话=cumsum(ifelse(activity==“new”,1,0)))
#一个tibble:10x3
#分组:用户[2]
用户活动会话
1新的1
2相同的1
3相同的1
4新的2
5 A相同的2
6 B新的1
7 B新的2
8 B同样的2
9 B同样的2
10 B新的3

您是否有办法区分数据中的第6-9行(针对用户B)?我是否可以按用户和会话分组?基本上是-分别@桑尼溶液很好;但我想知道你如何判断第8行对于第6行还是第7行是“B”“相同”“新”“你可以将其简化为
。。。变异(会话=cumsum(活动=new))
df_marked <- tibble(user = c("A", "A", "A", "A", "A", "B", "B", "B", "B", "B"),
         activity = c("new", "same", "same", "new", "same", "new", "new", "same", "same", "new"),
         session = c(1, 1, 1, 2, 2, 1, 2, 2, 2, 3))
library(dplyr)
df %>%
  group_by(user) %>%
  mutate(session = cumsum(ifelse(activity == "new", 1, 0)))
# A tibble: 10 x 3
# Groups:   user [2]
   user  activity session
   <chr> <chr>      <dbl>
 1 A     new            1
 2 A     same           1
 3 A     same           1
 4 A     new            2
 5 A     same           2
 6 B     new            1
 7 B     new            2
 8 B     same           2
 9 B     same           2
10 B     new            3