我有一個與時間相關的事件的數據幀。通過兩列值的範圍查找數據幀中的匹配間隔
下面是一個例子:
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種不同的名稱的。這些人中的每一個以三種不同的順序出現,A-C。然後他們在這些序列中有活動的時間段,並且我標記開始/結束事件並計算持續時間。
我想隔離每個人,並找到他們與相同和相同的組ID中的人匹配的時間間隔。
使用上面的示例數據,我想知道John和Adam在同一個序列中同時出現的時間。然後我想將John與ID1/ID2中17個名稱的其餘部分進行比較。
我不需要需要匹配共享'活躍'時間的確切數量,我只是希望隔離的行是共同的。
我的舒適度正在使用dplyr,但我還無法解決這個問題。我環顧四周,看到了一些與鄰接矩陣相似的例子,但這些例子具有精確和精確的數據點。我無法用範圍/間隔計算出策略。
謝謝!
UPDATE: 這裏是理想的結果
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
我想你會隔離每個事件一行約翰的例子,標誌着開始/結束的時間框架,然後通過每一個名字和迭代事件在數據幀的其餘部分找到首先在同一序列內適合的時間點,然後對照約翰的標準開始/結束時間幀。
這個包應該有所幫助:https://開頭CRAN。rstudio.com/web/packages/intervals/ – hrbrmstr
從'data.table'包和/或[SO上的搜索結果]簽出'?foverlaps'(http://stackoverflow.com/search?tab=newest&q=%5br% 5d%20%5bdata.table%5d%20flalaps) – Arun