Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/71.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R 仅在日内时间段运行分析-zoo_R_Xts_Zoo - Fatal编程技术网

R 仅在日内时间段运行分析-zoo

R 仅在日内时间段运行分析-zoo,r,xts,zoo,R,Xts,Zoo,我需要从上午10点到下午4点进行分析。 原始数据从上午9点到下午5点,持续一年。 如何仅包括用于分析的指定时间段 动物园的窗户也不起同样的作用 结构(c)(0,7.12149266486255e-05,0.000142429853297251,0.0002136444779945877, 0.000284859706594502, 0.000356074633243128, 0.000427289559891753, 0.000498504486540379, 0.000569719413189

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

动物园的窗户也不起同样的作用

结构(c)(0,7.12149266486255e-05,0.000142429853297251,0.0002136444779945877, 0.000284859706594502, 0.000356074633243128, 0.000427289559891753, 0.000498504486540379, 0.000569719413189004, 0.00064093433983763, 0.000712149266486256, 0.000783364193134881, 0.000854579119783507, 0.000925794046432132, 0.000997008973080758, 0.00106822389972938, 0.00113943882637801, 0.00121065375302663, 0.00128186867967526, 0.00135308360632389, 0.00142429853297251, 0.00149551345962114, 0.00156672838626976, 0.00163794331291839, 0.00170915823956701, 0.00178037316621564, 0.00185158809286426, 0.00192280301951289, 0.00199401794616152,0.002065232872881014),索引=结构(c(1009942620, 1009942680, 1009942740, 1009942800, 1009942860, 1009942920, 1009942980, 1009943040, 1009943100, 1009943160, 1009943220, 1009943280, 1009943340, 1009943400, 1009943460, 1009943520, 1009943580, 1009943640, 1009943700, 1009943760, 1009943820, 1009943880, 1009943940, 1009944000, 1009944060, 1009944120、1009944180、1009944240、1009944300、1009944360),类=c(“POSIXct”, “POSIXt”)),class=“zoo”)


如何在几天内选择上午10点以上和下午4点以下的时段。

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

library(dplyr)
library(zoo)

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

result

如果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))
可以这样设置:

Sys.timezone()
Sys.setenv(TZ = "...")
在哪里。。。将替换为所需的时区。常见设置包括:

Sys.setenv(TZ = "GMT")
Sys.setenv(TZ = "") # restore default
以下将显示可使用的可能时区:

OlsonNames()

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

我们至少需要了解数据帧的外观。添加了dput输出在整年的数据中执行此操作将非常繁琐。此外,当无法明确指定时间时,zoo和xts中的时间索引有什么用?为什么会很枯燥?如何将时间降到分钟?例如:上午10:15到下午15:45使用(3)中的“T10:15/T15:45”。