【问题标题】:Subsetting time series data into ranges将时间序列数据子集到范围内
【发布时间】:2018-06-30 00:32:04
【问题描述】:

我正在尝试将 POSIXct 变量拆分为三个时间范围:18:00 - 21:59、22:00 - 01:59 和 2:00 - 6:00。

头部(活动$timect)

[1] "2018-06-30 21:51:00 NZST" "2018-06-30 23:14:00 NZST" "2018-06-30 23:39:00 NZST"

[4] "2018-06-30 01:10:00 NZST" "2018-06-30 03:32:00 NZST" "2018-06-30 03:40:00 NZST"

我正在使用包 lubridate 来执行此操作。代码如下:

require(lubridate)
early_activity <- with(Activity, Activity[hour(timect) >= 18 & hour(timect) < 22, ])
mid_activity <- with(Activity, Activity[hour(timect) >= 22 & hour(timect) < 2, ])
late_activity <- with(Activity, Activity[hour(timect) >= 2 & hour(timect) < 6, ])

我遇到的问题是早期和晚期活动范围工作正常,但中期活动时间范围返回 0 个观察值,尽管应该有几百个。

任何帮助将不胜感激!

【问题讨论】:

    标签: r lubridate posixct


    【解决方案1】:

    &amp; 运算符将找到与两个语句匹配的值(大于或等于 22 且小于 2),在这种情况下,您应该使用 | 以便它选择大于或等于的任何值到 22 或小于 2

    require(lubridate)
    early_activity <- with(Activity, Activity[hour(timect) >= 18 & hour(timect) < 22, ])
    mid_activity <- with(Activity, Activity[hour(timect) >= 22 | hour(timect) < 2, ])
    late_activity <- with(Activity, Activity[hour(timect) >= 2 & hour(timect) < 6, ])
    

    【讨论】:

      猜你喜欢
      • 2012-08-05
      • 2015-03-26
      • 2016-09-06
      • 2014-03-08
      • 2021-06-16
      • 2021-05-20
      • 1970-01-01
      • 2013-10-25
      • 2014-05-07
      相关资源
      最近更新 更多