【发布时间】:2019-04-04 21:11:36
【问题描述】:
我在rollapply() 的文档中注意到这一点要提前 3 天:
## rolling mean by time window (e.g., 3 days) rather than
## by number of observations (e.g., when these are unequally spaced):
#
## - test data
tt <- as.Date("2000-01-01") + c(1, 2, 5, 6, 7, 8, 10)
z <- zoo(seq_along(tt), tt)
## - fill it out to a daily series, zm, using NAs
## using a zero width zoo series g on a grid
g <- zoo(, seq(start(z), end(z), "day"))
zm <- merge(z, g)
## - 3-day rolling mean
rollapply(zm, 3, mean, na.rm = TRUE, fill = NA)
假设我有以下数据:
data.zoo <- read.zoo(
data.frame(
date = sample(seq(as.Date('2001-04-12'), as.Date("2019-04-05"), by="day"), 600),
val = runif(1:600),
val2 = runif(1:600)
))
是否可以以某种方式使用具有 5 个月滚动窗口的 rollapply() 来计算 val 的滚动平均值? 5个月滚动窗口的问题是一个月的天数会变化......
注意:我更喜欢 base-R 解决方案,但其他库会很有趣
【问题讨论】: