【发布时间】:2018-08-01 00:21:56
【问题描述】:
我在使用 period.apply 函数进行高分辨率时间序列分析时遇到问题。
我想以 10 分钟的间隔为我的数据计算统计数据(不同时期的平均值、Stddev 等)。像this answer 中描述的那样计算每小时意味着工作得很好。
它创建一个新的 xts 对象,并为每一列计算平均值。如何计算每列的最大值?
这个可重现的例子描述了我的数据结构:
library(xts)
start <- as.POSIXct("2018-05-18 00:00")
tseq <- seq(from = start, length.out = 1440, by = "10 mins")
Measurings <- data.frame(
Time = tseq,
Temp = sample(10:37,1440, replace = TRUE, set.seed(seed = 10)),
Variable1 = sample(1:200,1440, replace = TRUE, set.seed(seed = 187)),
Variable2 = sample(300:800,1440, replace = TRUE, set.seed(seed = 333))
)
Measurings_xts <- xts(Measurings[,-1], Measurings$Time)
HourEnds <- endpoints(Measurings_xts, "hours")
Measurings_mean <- period.apply(Measurings_xts, HourEnds, mean)
我认为只需将函数参数从 mean 更改为 max 会很容易,如下所示:
Measurings_max <- period.apply(Measurings_xts, HourEnds, max)
它提供输出,但只有一列具有总体最大值。我需要每列的每小时最大值。一个简单的解决方案将不胜感激。
【问题讨论】:
标签: r time-series xts