我需要能够包含事件的数据帧,并输出运行的开始、结束和计数,其中运行是事件一起小于指定时间段的情况。
data.frame 行已经按时间排序
e.g.
library(lubridate)
ts <- c("2016-10-28 19:21:19",
"2016-10-28 19:21:20",
"2016-10-28 19:21:21",
"2016-10-28 19:21:21",
"2016-10-28 19:23:23",
"2016-10-28 19:23:24",
"2016-10-28 19:23:24",
"2016-10-28 19:23:25",
"2016-10-30 03:59:09",
"2016-10-30 08:54:31",
"2016-10-30 08:54:35"
)
df <- data.frame(time=ymd_hms(ts))
我想要输出的是这样的数据帧,其中间隔是距上一个事件 60 秒
start end count
2016-10-28 19:21:19 2016-10-28 19:21:21 4
2016-10-28 19:23:23 2016-10-28 19:23:25 4
2016-10-30 03:59:09 2016-10-30 03:59:09 1
2016-10-30 08:54:31 2016-10-30 08:54:35 2
实际序列会很长,因此解决方案需要在大量(~100k)行时表现良好
我看过lag
, diff
和其他功能,但看不到一种简单或有效的方法来做到这一点。