我有以下数据框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)
我必须对许多数据帧执行此操作,因此我需要通用的代码段。尽管我知道有类似的问题,但我没有找到答案。
提前谢谢!