【发布时间】:2019-06-14 00:43:15
【问题描述】:
我正在尝试从UserId 生成SessionId 和timestamps 的差异。表中的第一个用户显然被分配了 1,如果同一个用户登录并且当前登录和先前登录之间的差异小于 5 分钟,则 sessionId 必须从那里增加 1,否则它必须增加 1。我可以使用for 循环和nested if 语句来做到这一点,但想知道是否可以使用dplyr 或类似的包来完成。已经有一个类似的问题here,但它对 UserId 进行排序,我想在不排序 UserId 的情况下实现这一点。
Input and Output(SessionId) is in the same table.
CustomerID TimeStamp SessionID
101 0000-01-01 01:00:00 1
101 0000-01-01 01:03:00 1
102 0000-01-01 01:05:00 2
103 0000-01-01 01:06:00 3
104 0000-01-01 01:06:00 4
101 0000-01-01 01:09:00 5
105 0000-01-01 01:10:00 6
104 0000-01-01 01:10:00 4
106 0000-01-01 01:11:00 7
105 0000-01-01 01:12:00 6
104 0000-01-01 01:12:00 4
104 0000-01-01 01:18:00 8
104 0000-01-01 01:20:00 8
105 0000-01-01 01:21:00 9
104 0000-01-01 01:26:00 10
【问题讨论】: