У меня есть кадр данных с идентификатором группы, временем начала и временем окончания. Я хотел бы вычислить перекрывающийся интервал времени между группами. Вот пример набора данных;
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
Последний столбец не обязательно должен отображать все случаи. Это просто, чтобы помочь вам понять. Можно ли в любом случае вычислить общее время перекрытия между группами путем сравнения всех временных интервалов?
by
необходимо указать переменные для присоединения. Я что-то пропустил в коде? 30.04.2021