从每日数据中删除时间段

Remove time periods from daily data

我有一个每小时观察数据集,格式为 %Y%m%d %H:%M,不同天的结果如下 2020-03-01 01:00:00。 filter怎么才能过滤掉一定的时间间隔呢?我的目标是保持 08:00 和 20:00 之间的观察结果。

between(hour( your_date_value ), 8, 19)

您可以从列中提取小时值,并使行保持在 8 到 20 小时之间。

df$hour <- as.integer(format(df$datetime, '%H'))
result <- subset(df, hour >= 8 & hour <= 20)
result

#               datetime hour
#9   2020-01-01 08:00:00    8
#10  2020-01-01 09:00:00    9
#11  2020-01-01 10:00:00   10
#12  2020-01-01 11:00:00   11
#13  2020-01-01 12:00:00   12
#14  2020-01-01 13:00:00   13
#15  2020-01-01 14:00:00   14
#16  2020-01-01 15:00:00   15
#17  2020-01-01 16:00:00   16
#18  2020-01-01 17:00:00   17
#19  2020-01-01 18:00:00   18
#20  2020-01-01 19:00:00   19
#21  2020-01-01 20:00:00   20
#33  2020-01-02 08:00:00    8
#34  2020-01-02 09:00:00    9
#35  2020-01-02 10:00:00   10
#...
#...

数据

df <- data.frame(datetime = seq(as.POSIXct('2020-01-01 00:00:00', tz = 'UTC'), 
                      as.POSIXct('2020-01-10 00:00:00', tz = 'UTC'), 'hour'))