r-只在盘中时段运行分析-zoo

  • 本文关键字:运行 -zoo 段运行 r xts zoo
  • 更新时间 :
  • 英文 :


我需要从上午10点到下午4点进行分析。原始数据从上午9点到下午5点,持续一年。如何只包括指定的分析时间段?

动物园的窗户也于事无补。

结构(c(0,7.1214926648625e-05,0.000142429853297251,0.0002136447799454877,0.000284859706594502、0.00035607463243128、0.000427289559891753,0.0004985044865400379、0.000569719413189004、0.0006409343383763,0.000712149266486256、0.0007833641933134881、0.000854579119783507,0.000925794046432132、0.000997008973080758、0.0010682238972938,0.0011394382637801、0.0012106537530263、0.00128186867967526,0.00135308360632389、0.001142429853297251、0.001491551345962114,0.00156672838626976、0.00163794331291839、0.00170915823956701,0.00178037316621564、0.00185158809286426、0.00192280301951289,0.001994017946161520.002065233287281014(,索引=结构(c(1009942620,1009942680、1009942740、10019942800、1009942860、1009932920、1009912980,1009943040、1009943100、1009943160、10019943220、1009933280、1009913340,1009943400、1009943460、1009943520、1009943580、1009933640、10019943700,1009943760、1009943820、1009933880、10019943940、1009914000、1009944060,10099441201009944180100994424010099443001009944360(,class=c("POSIXct";,"POSIXt"(,class=";zoo"(

如何选择时间段>上午10点和时间<下午4点,持续几天。

如果z是zoo对象,则

1(使用它来提取每个时间点的小时,然后仅将其子集设置为10、11、12、13、14或15。

z[format(time(z), "%H") %in% 10:15]

2(或使用类似的替代方案,但使用POSIXlt获取小时数:

z[as.POSIXlt(time(z))$hour %in% 10:15]

3(或将系列转换为xts并使用此:

x <- as.xts(z)["T10:00/T15:00"]
drop(as.zoo(x))

如果可以返回xts系列,则省略第二行。

时区

请确保您正确设置了时区,因为一个时区中的时间与另一个时区的时间不同。

我们可以这样查询会话的当前时区:

Sys.timezone()

并且可以这样设置:

Sys.setenv(TZ = "...")

在哪里。。。被替换为所需的时区。常见设置有:

Sys.setenv(TZ = "GMT")
Sys.setenv(TZ = "") # restore default

以下将显示可使用的可能时区:

OlsonNames()

只有当会话的时区尚未设置为数据的时区时,才需要所有这些。

您可以使用时间、值和小时信息构建用于分析的tibble。然后,您只能在上午10点到下午4点之间filter行。

library(dplyr)
library(zoo)
tibble(time = index(df), 
value = coredata(df), 
hour = lubridate::hour(time)) %>%
filter(between(hour, 10, 15)) -> result
result

最新更新