У меня есть дата с метками времени, когда отдельное животное (ID) обнаруживается в определенных местах. Вот пример данных:
timestampUTC location ID
2017-10-02 19:23:27 JB12 A69-1601-47272
2017-10-02 19:26:48 JB12 A69-1601-47272
2017-10-02 19:27:23 JB12 A69-1601-47272
2017-10-02 19:31:46 JB12 A69-1601-47272
2017-10-02 23:52:15 JB12 A69-1601-47272
2017-10-02 23:53:26 JB12 A69-1601-47272
2017-10-02 23:55:13 JB12 A69-1601-47272
2017-10-03 19:53:50 JB13 A69-1601-47272
2017-10-03 19:55:23 JB13 A69-1601-47272
2017-10-03 19:58:26 JB13 A69-1601-47272
2017-10-04 13:15:13 JB12 A69-1601-47280
2017-10-04 13:16:42 JB12 A69-1601-47280
2017-10-04 13:21:39 JB12 A69-1601-47280
2017-10-04 19:34:54 JB12 A69-1601-47280
2017-10-04 19:55:28 JB12 A69-1601-47280
2017-10-04 20:08:23 JB12 A69-1601-47280
2017-10-04 20:21:43 JB12 A69-1601-47280
2017-10-05 04:55:48 JB13 A69-1601-47280
2017-10-05 04:57:04 JB13 A69-1601-47280
2017-10-05 05:18:40 JB13 A69-1601-47280
2017-10-07 21:24:19 JB13 A69-1601-47280
2017-10-07 21:25:36 JB13 A69-1601-47280
2017-10-07 21:29:25 JB13 A69-1601-47280
Мой реальный фрейм данных имеет длину почти 200 000 строк и имеет 4 разных местоположения и 13 разных идентификаторов.
Я хочу отсортировать их по отдельным событиям (ID в местоположении) с начальным и конечным временем на основе столбца timestampUTC, с событиями, заканчивающимися на timestampUTC, когда следующее обнаружение для этого ID в этом местоположении происходит более чем через полчаса. Следующее событие начинается в следующую дату-время.
Используя приведенные выше примеры данных, я бы хотел сгенерировать еще один кадр данных, который будет выглядеть примерно так:
ID location event start event end
A69-1601-47272 JB12 2017-10-02 19:23:27 2017-10-02 19:31:46
A69-1601-47272 JB12 2017-10-02 23:52:15 2017-10-02 23:55:13
A69-1601-47272 JB13 2017-10-03 19:53:50 2017-10-03 19:58:26
A69-1601-47280 JB12 2017-10-04 13:15:13 2017-10-04 13:21:39
A69-1601-47280 JB12 2017-10-04 19:34:54 2017-10-04 20:21:43
A69-1601-47280 JB13 2017-10-05 04:55:48 2017-10-05 05:18:40
A69-1601-47280 JB13 2017-10-07 21:24:19 2017-10-07 21:29:25
Если идентификатор был обнаружен наlocation он дает идентификатор, местоположение, а также начало и конец своего времени там.
Например, вы можете видеть, что есть два дискретных события для ID 47272 в местоположении JB12, которые происходят в тот же день (2017-10-02), но разница между концом первого события и началомвторой> 30 минут (~ 4 часа и 20 минут), так что это отдельные события.
Я бы добавил, какой код я пробовал, но я не знаю, с чего начать.
Заранее спасибо!