У меня есть набор данных в R со следующим форматом:
data = data.table(
id = c(1, 2, 2, 2, 3, 3, 3, 3 ,3, 3),
Start = c("2019-03-01 09:15:36",
"2019-01-01 08:00:00", "2019-01-01 08:00:10","2019-01-01 08:00:30",
"2019-01-01 08:00:30", "2019-01-01 08:00:40","2019-01-01 08:00:50",
"2019-01-01 08:01:10", "2019-01-01 08:01:20","2019-01-01 08:01:31"
))
data$Start = as.POSIXct(data$Start ,format = "%Y-%m-%d %H:%M:%S")
каждая строка представляет взаимодействие с человеком, с каждым человеком, идентифицированным идентификатором (В примере набора данных у меня есть 3 человека ). По определению, взаимодействия с менее чем 15 секунд между датами их начала должны быть объединены (считаться только как один). Это окно 15 с должно расширяться с каждым новым взаимодействием (см. Результат примера для лица 3).
Учитывая это правило, а для data
я хочу создать столбец newID, который идентифицирует уникальное взаимодействие. Результаты должны быть такими:
data$newID
[1] 1 2 2 3 4 4 4 5 5 5
Похоже, что-то должно быть возможно в data.table
, без неэффективных циклов for
, но я не могу заставить его работать ...