计算两个时间戳之间的行数

时间:2017-10-20 20:54:34

标签: r

我在数据框中有数据,其中行按时间戳组织。我需要从每一行的时间戳开始,然后向前看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

1 个答案:

答案 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