【发布时间】:2019-05-14 15:36:52
【问题描述】:
我有一个数据框,列出了在应用程序上执行的每个“事件”(用于操作的术语)。每个事件都有一个用户 ID、时间戳(格式:'hms' num)和日期戳(格式:日期)等变量,但这些是与我的问题相关的唯一变量。我正在尝试对每个用户在 30 分钟内发生的事件进行分组。例如,用户 123 的 8 行事件将被分组为 2 行,代表应用程序上的不同活动会话。
我尝试使用 group_by 函数,但不知道如何考虑特定时间段。
我目前没有任何代码可以作为我尝试过的示例。
以下是我的数据框的示例:
user ID Event Name Date Time
23 Press 01/01/2019 10:20:52
23 Read 01/01/2019 10:21:43
23 Click 01/01/2019 10:27:21
23 Press 01/01/2019 10:28:05
87 Read 01/01/2019 11:42:51
87 Press 01/01/2019 12:16:02
87 Read 01/01/2019 12:17:49
23 Click 01/01/2019 15:42:51
23 Click 01/01/2019 15:43:45
23 Press 01/01/2019 15:45:12
64 Read 01/01/2019 18:01:33
64 Click 01/01/2019 18:02:26
64 Click 01/01/2019 18:02:58
64 Read 01/01/2019 18:04:19
64 Press 01/01/2019 18:10:47
在这个例子中,我只展示了一天的几个事件。但是数据框有数千行,所有这些信息涵盖了大约 5 个月。
理想情况下,我试图让最终结果如下所示:
user ID Event Name Date Time
23 Session 01/01/2019 10:20:52
87 Session 01/01/2019 11:42:51
87 Session 01/01/2019 12:16:02
23 Session 01/01/2019 15:42:51
64 Session 01/01/2019 18:01:33
因此,基本上在 30 分钟内发生的多行事件已被压缩为 1 行,其中事件名称已重命名为会话。任何帮助都将不胜感激,因为我仍然是 R 的新手,而且这个问题似乎比我迄今为止所习惯的要先进一些。
【问题讨论】:
-
“在 30 分钟内”是指最后一个事件距离第一个事件
-
标签: r time-series grouping