【问题标题】:R - count total number of rows in every 15 minutes for each dayR - 计算每天每 15 分钟的总行数
【发布时间】:2014-07-14 05:05:23
【问题描述】:

我有一个如下所示的数据框:

date  
2014-06-18 03:44:29   
2014-06-18 03:54:23  
2014-06-18 03:50:56   
2014-06-18 03:49:46   
2014-06-19 01:01:10   
2014-06-19 00:56:53   
2014-06-19 00:57:26   
2014-06-19 00:53:47   
2014-06-19 01:44:59   
2014-06-19 01:48:55  
2014-06-19 01:45:16     

它是一个包含数千行的数据框。我需要每天每 15 分钟计算一次总行数。我需要这样的东西:

date                                            count
2014-06-18 03:00:00 - 2014-06-18 03:15:00        2  
2014-06-18 03:15:00 - 2014-06-18 03:30:00        5  
2014-06-19 01:45:00 - 2014-06-19 02:00:00        15  
2014-06-19 02:00:00 - 2014-06-19 02:15:00        5

有没有办法在 R 中轻松做到这一点?非常感谢任何帮助。

谢谢。

【问题讨论】:

    标签: r date


    【解决方案1】:

    首先,确保您的值正确格式化为 POSIX 日期/时间值。

    dd <- c("2014-06-18 03:44:29", "2014-06-18 03:54:23", "2014-06-18 03:50:56", 
    "2014-06-18 03:49:46", "2014-06-19 01:01:10", "2014-06-19 00:56:53", 
    "2014-06-19 00:57:26", "2014-06-19 00:53:47", "2014-06-19 01:44:59", 
    "2014-06-19 01:48:55")
    dt <- strptime(dd, format="%Y-%m-%d %H:%M:%S")
    

    然后,由于 POSIX 日期/时间存储为自 1970 年 1 月 1 日以来的秒数,您可以使用

    舍入到最接近的 15 分钟间隔
    round15 <- dt-(as.numeric(dt) %% (60*15))
    

    然后用

    四舍五入
    table(round15)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-03-14
      • 1970-01-01
      • 1970-01-01
      • 2019-02-21
      • 2021-06-19
      相关资源
      最近更新 更多