【问题标题】:Count number of rows between two timestamps计算两个时间戳之间的行数
【发布时间】:2017-10-20 20:54:34
【问题描述】:

我在数据框中有数据,其中行按时间戳组织。我需要取每一行并从该行的时间戳回顾 1 小时,并计算 1 小时内的行数。我用window 尝试了zoo 包,但看起来它适用于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

【问题讨论】:

    标签: r


    【解决方案1】:

    假设你有一个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
    

    【讨论】:

    • 谢谢 eddi.. 确实我正在使用 data.framedata.table 的新手。感谢您的帮助
    猜你喜欢
    • 1970-01-01
    • 2011-09-04
    • 1970-01-01
    • 1970-01-01
    • 2020-05-13
    • 1970-01-01
    相关资源
    最近更新 更多