如何根据连续行之间的时间差拆分数据帧?

时间:2019-04-18 20:51:31

标签: r dataframe time subset

我有以下数据框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)

我必须对许多数据帧执行此操作,因此我需要通用的代码段。尽管我知道有类似的问题,但我没有找到答案。

提前谢谢!

0 个答案:

没有答案