【发布时间】:2022-11-15 12:08:24
【问题描述】:
我想知道是否有针对以下问题的有效 data.table 解决方案。
假设我有以下数据集:
library(data.table)
DT <- data.table(emp = c(1,2,3),
start_time = c(90,90,540),
duration = c(480, 480,480 ))
DT[, end_time := start_time + duration]
看起来像:
emp start_time duration end_time
<num> <num> <num> <num>
1: 1 90 480 570
2: 2 90 480 570
3: 3 540 480 1020
这里emp是员工id,每个员工轮班的开始时间、持续时间和结束时间由三列给出。我试图在几分钟内确定每个员工之间的重叠量。因此,输出应该类似于:
emp emp_1 emp_2 emp_3
<num> <num> <num> <num>
1: 1 480 480 30
2: 2 480 480 30
3: 3 30 30 480
其中列基于完整的员工集。
我正在寻找一个 data.table 解决方案,因为员工人数非常多。
谢谢!
【问题讨论】:
标签: r dplyr data.table