【发布时间】:2015-10-17 22:39:32
【问题描述】:
我有一个时间相关事件的数据框。
这是一个例子:
Name Event Order Sequence start_event end_event duration Group
JOHN 1 A 0 19 19 ID1
JOHN 2 A 60 112 52 ID1
JOHN 3 A 392 429 37 ID1
JOHN 4 B 282 329 47 ID1
JOHN 5 C 147 226 79 ID1
JOHN 6 C 566 611 45 ID1
ADAM 1 A 19 75 56 ID2
ADAM 2 A 384 407 23 ID2
ADAM 3 B 0 79 79 ID2
ADAM 4 B 505 586 81 ID2
ADAM 5 C 140 205 65 ID2
ADAM 6 C 522 599 77 ID2
基本上有两个不同的组,ID 1 和 2。对于每个组,有 18 个不同的名称。这些人中的每一个都以 3 个不同的顺序出现,A-C。然后它们在这些序列中有活动时间段,我标记开始/结束事件并计算持续时间。
我想隔离每个人,并找出他们何时与同一组 ID 中的人具有匹配的时间间隔。
使用上面的示例数据,我想找出 John 和 Adam 在同一序列中同时出现的时间。然后,我想将 John 与 ID1/ID2 中的其他 17 个名字进行比较。
我不需要匹配共享“活动”时间的确切数量,我只是希望隔离常见的行。
我的安慰是使用 dplyr,但我还不能破解它。我环顾四周,看到了一些具有邻接矩阵的类似示例,但这些示例具有精确且精确的数据点。我无法弄清楚范围/间隔的策略。
谢谢!
更新: 这是所需结果的示例
Name Event Order Sequence start_event end_event duration Group
JOHN 3 A 392 429 37 ID1
JOHN 5 C 147 226 79 ID1
JOHN 6 C 566 611 45 ID1
ADAM 2 A 384 407 23 ID2
ADAM 5 C 140 205 65 ID2
ADAM 6 C 522 599 77 ID2
我认为您应该为 John 隔离每个事件行,标记开始/结束时间框架,然后遍历数据框架其余部分的每个名称和事件,以找到最适合同一序列的时间点,其次是针对约翰的基准开始/结束时间框架。
【问题讨论】:
-
从
data.table包和/或search results on SO结帐?foverlaps