Как разделить фрейм данных на основе разницы во времени между последовательными строками? - PullRequest
0 голосов
/ 18 апреля 2019

У меня есть следующий фрейм данных df:

     Vehicle ID           TIMESTAMP
6225         52 2019-04-14 04:00:24
6226         52 2019-04-14 04:00:25
6227         52 2019-04-14 04:00:26
6228         52 2019-04-14 04:00:27
6229         52 2019-04-14 04:00:28
6230         52 2019-04-14 04:00:29
6231         52 2019-04-14 04:00:30
6232         52 2019-04-14 04:00:31
6233         52 2019-04-14 04:00:32
6234         52 2019-04-14 04:00:33
6235         52 2019-04-14 04:00:34
6236         52 2019-04-14 04:00:35
6237         52 2019-04-14 04:00:36
5880         52 2019-04-02 07:30:02
5881         52 2019-04-02 07:30:03
5882         52 2019-04-02 07:30:05
5883         52 2019-04-02 07:30:06
5884         52 2019-04-02 07:30:07
5885         52 2019-04-02 07:30:08
5886         52 2019-04-02 07:30:09
5887         52 2019-04-02 07:30:10

Я хочу разделить фрейм данных на группы на основе разницы во времени между последовательными строками, которая меньше 20 секунд.Я пробовал следующий код, но он не работает, как я хотел, так как group столбец принимает только значение 1 (а не 1 и 2, как я хочу).

df$group <- cumsum(ifelse(difftime(df$TIMESTAMP, shift(df$TIMESTAMP, fill = df$TIMESTAMP[1]), units = "secs") >= 20 ,1, 0)) + 1
df <- split(df, f = df$group)

Я должен это сделатьдля многих фреймов данных, поэтому я хочу общий кусок кода.Хотя я знаю, что есть похожие вопросы, я не нашел ответа на свой вопрос.

Заранее спасибо!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...