【发布时间】:2026-02-14 21:35:01
【问题描述】:
我想添加一个新变量来指示每次点击的会话数。
我的数据集如下所示(每一行代表一次点击):
head(test)
CustomerID UserID Page
1 1 1 A
2 1 1 B
3 1 1 C
4 1 1 D
5 2 2 A
6 2 2 B
由于不同的用户会创建多个点击流,我想为每次点击分配一个会话编号。条件是,当 customerID 不同时,这将是该用户的新会话。
我想要这样:
CustomerID UserID Page Session
1 1 1 A 1
2 1 1 B 1
3 1 1 C 1
4 1 1 D 1
5 2 2 A 1
6 2 2 B 1
7 2 2 E 1
8 2 2 F 1
9 3 3 A 1
10 3 3 B 1
11 3 3 C 1
12 3 3 G 1
13 3 3 H 1
14 3 3 I 1
15 4 4 A 1
16 4 4 B 1
17 4 4 C 1
18 4 4 D 1
19 4 4 E 1
20 5 5 A 1
21 5 5 B 1
22 6 6 A 1
23 6 6 B 1
24 7 1 A 2
25 7 1 B 2
26 8 2 A 2
27 8 2 B 2
28 8 2 C 2
29 8 2 G 2
30 8 2 H 2
我尝试使用 group_by() 和 mutate() 命令解决它。但是,我认为我必须创建类似 ifelse() 语句来分配正确的会话编号。我希望任何人都可以帮助我!
我尝试过的:
test<-test %>% group_by(CustomerID, UserID) %>% mutate(Session = )
【问题讨论】:
-
你能再显示几行数据来理解你的意思吗?从数据头看,不是那么清楚
-
我已经添加了一个截图,希望这会有所帮助。
-
感谢您显示更多数据以及这些数据对应的“会话”是什么,即“会话”在哪里从 1 变为 2。最好不要显示为复制图像的图像数据
-
我现在添加了我希望如何查看数据集的完整版本。如果该 UserID 存在,则会话编号从 1 变为 2,但对应的 CustomerID 不同。