我在数据框中有数据,其中行按时间戳组织。我需要从每一行的时间戳开始,然后向前看1小时,然后计算1小时内的行数。我尝试使用zoo
window
包,但看起来它适用于Date
类型而不是time-stamp
我的数据如下:
Timestamp X
1/9/2015 0:00 1
1/9/2015 0:30 2
1/9/2015 1:10 3
1/9/2015 1:30 4
1/9/2015 2:20 5
1/9/2015 2:30 6
1/9/2015 3:15 7
1/9/2015 3:30 8
1/9/2015 4:00 9
1/9/2015 4:30 10
1/9/2015 5:01 11
结果如下:
Timestamp X row_count
1/9/2015 0:00 1 0
1/9/2015 0:30 2 1
1/9/2015 1:10 3 1
1/9/2015 1:30 4 2
1/9/2015 2:20 5 1
1/9/2015 2:30 6 2
1/9/2015 3:15 7 2
1/9/2015 3:30 8 2
1/9/2015 4:00 9 2
1/9/2015 4:30 10 2
1/9/2015 5:01 11 2
提前感谢您的任何建议。
编辑:我已经提出了一个后续问题here。
答案 0 :(得分:4)
假设您有data.frame
:
library(data.table)
setDT(dt)
dt[.(Timestamp = Timestamp - 1*60*60, X = X), on = 'Timestamp', roll = -Inf,
i.X - X]
# [1] 0 1 1 2 1 2 2 2 2 2 1