【问题标题】:Detect gap in time in r and calculate data accordingly检测 r 中的时间间隔并相应地计算数据
【发布时间】:2016-05-11 22:16:31
【问题描述】:

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

Time       Count       Colour  
01:02:30  11.000000       Red  
17:05:49  52.000000       White  
04:06:07   4.000000       Blue  
01:07:03  30.000000       Red  
20:08:30   4.000000       Yellow

时间最初是一个 ISODate,我是否将其剥离以获得我想要的时间,使用下面的代码。

temp$Time = parse_iso_8601(temp$Time)  
temp$Time <- as.POSIXlt(temp$Time)  
library(chron)  
temp$Time=times(format(temp$Time, format="%H:%M:%S"))

数据中的时间之间存在差距。我希望找出间隔后一小时和间隔前一小时的行。例如,凌晨 1 点之后有 3 小时的间隔,所以我希望找到凌晨 12 点到 1 点和凌晨 4 点到 5 点的行。如何检测间隙并从我的数据框中获取所需的行?

还要在凌晨 12 点到凌晨 1 点之间获取行数,我该怎么办? 这似乎不起作用!

temp[temp$Time >= 24/24 & temp$Time <= 1/24, ]

【问题讨论】:

    标签: r


    【解决方案1】:

    将时间转换为chron 后,您可以按如下方式进行比较:

    temp[temp$Time >= times("00:00:00", format=c('h:m:s')) & temp$Time <= times("01:00:00", format=c('h:m:s')), ]
    

    在您发布的示例中,00:00 到 01:00 之间没有时间,这是从 1:00 到 2:00 的示例:

    > temp[temp$Time >= times("01:00:00", format=c('h:m:s')) & temp$Time <= times("02:00:00", format=c('h:m:s')), ]
          Time Count Colour
    1 01:02:30    11    Red
    4 01:07:03    30    Red
    

    希望对你有帮助。

    【讨论】:

      猜你喜欢
      • 2016-08-01
      • 2022-10-05
      • 2021-07-20
      • 2020-10-02
      • 1970-01-01
      • 2016-04-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多