【发布时间】:2021-07-23 08:20:31
【问题描述】:
我有一个包含组 ID、开始时间和结束时间的数据框。我想计算组之间的重叠时间间隔。这是数据集的示例;
id <- c("a","a","b","c","c")
start_time <-as.POSIXct(c("2016-05-27 09:30:00","2016-05-27 15:30:00",
"2016-05-27 14:30:00","2016-05-27 09:40:00","2016-05-27 15:00:00"),tz= "UTC")
end_time <-as.POSIXct(c("2016-05-27 10:30:00","2016-05-27 17:30:00",
"2016-05-27 16:30:00","2016-05-27 09:50:00","2016-05-27 16:00:00"),tz= "UTC")
df <- data.frame(id,start_time,end_time)
示例数据框如下所示:
ID start_time end_time
1 a 2016-05-27 09:30:00 2016-05-27 10:30:00
2 a 2016-05-27 15:30:00 2016-05-27 17:30:00
3 b 2016-05-27 14:30:00 2016-05-27 16:30:00
4 c 2016-05-27 09:40:00 2016-05-27 09:50:00
5 c 2016-05-27 15:00:00 2016-05-27 16:00:00
建议的数据框的期望结果是
ID_1 ID_2 overlap
1 a b 0 + 60 mins
2 a c 10 + 0 + 0 + 30 mins
3 b c 0 + 60 mins
最后一列不必显示所有案例。这只是为了帮助您理解。是否有办法通过比较所有时间间隔来计算组之间的总重叠时间?
【问题讨论】: