У меня большой набор данных с несколькими группами в наборе идентификаторов с датами начала и окончания. То, что я пытаюсь сделать, - внутри каждой группы определить, где произошла подгруппа. Подгруппа в группе будет иметь место, когда два идентификатора пересекаются со своими столбцами даты и времени начала и окончания. Ниже приведен скрипт для создания образца набора данных в R для одной группы. Что я хочу сделать, так это создать внутри каждой группы столбец с именем Grp, который группирует эти подгруппы с перекрывающимися датами начала и окончания.
Что у меня есть ...
structure(list(ID = c(1,2,3,4), START = structure(c(1490904000, 1490918400,
1508363100, 1508379300), tzone = "UTC", class = c("POSIXct",
"POSIXt")), END = structure(c(1492050600, 1492247700,
1509062400, 1509031800), tzone = "UTC", class = c("POSIXct",
"POSIXt"))), class = "data.frame", row.names = c(NA, -4L), .Names = c("ID","START",
"END"))
То, что я хочу, это ...
structure(list(ID = c(1,2,3,4), START = structure(c(1490904000, 1508379300,
1508363100, 1490918400), tzone = "UTC", class = c("POSIXct",
"POSIXt")), END = structure(c(1492050600, 1509031800,
1509062400, 1492247700), tzone = "UTC", class = c("POSIXct",
"POSIXt")), Grp = c(1,2,2,1)), class = "data.frame", row.names = c(NA, -4L), .Names = c("ID","START",
"END","Grp"))
Я пытался использовать интервал lubridate и найти перекрытие таким образом, но безуспешно. Любая помощь будет принята с благодарностью.