R 将时间序列数据细分为范围

R 将时间序列数据细分为范围,r,lubridate,posixct,R,Lubridate,Posixct,我试图将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软件包来

我试图将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, ])
require(润滑油)
早期活动=18小时(时间CT)<22,])
中段活动=22小时(时间CT)<2,])
晚活动=2小时(时间CT)<6,])
我遇到的问题是,早期和晚期活动范围工作正常,但中期活动时间范围返回0个观察值,尽管应该有几百个


任何帮助都将不胜感激

运算符
&
将查找与这两条语句匹配的值(都大于或等于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, ])
require(润滑油)
早期活动=18小时(时间CT)<22,])
中段活动=22小时(时间CT)<2,])
晚活动=2小时(时间CT)<6,])

运算符将查找与这两条语句匹配的值(都大于或等于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, ])
require(润滑油)
早期活动=18小时(时间CT)<22,])
中段活动=22小时(时间CT)<2,])
晚活动=2小时(时间CT)<6,])