用 "growing"窗口滚动应用

标签 r zoo

伙计们,通常当您执行以下操作时:

tmp = zoo(rnorm(100), 1:100)
rollapply(tmp, 10, function(x) quantile(x, 0.05), align="right")

很正确rollapply从10个元素可用时开始计算值。

不幸的是,我需要为前10个观察使用尽可能多的数据的方法,实际上是不断增长的数据窗口,直到有足够的数据可以使用滑动窗口时,例如1,1:2,1:3,1:4等,直到我们至少有10个元素,然后照常滑动窗口。

有比丑陋的for循环更好的方法吗?

最佳答案

为什么不在一开始就用9个NA填充序列呢?绝对比“丑陋的循环”更好:

tmp = zoo(c(rep(NA,9), rnorm(100)), 1:109)
zoo(rollapply(tmp, 10, function(x) quantile(x, 0.05, na.rm = TRUE), 
              align="right"), 1:100)

关于用 "growing"窗口滚动应用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4829919/

相关文章:

重新排列多列数据框

r - 处理 R 中 xts 对象的应用函数

r - 计算向量中连续出现的次数

r - 在R中自动查找时间序列的季节性

r - 移动平均线变化窗口

r - 在 rShiny 应用程序中使用markerClusterOptions() 时弹出传单

R:通过将多个值与一个值进行比较来创建瀑布图

r - R 中的 as.yearqtr 从 12 月而不是 1 月开始

r - 按月年日期列排序数据框

R:在一个命令中将 getSymbols() 的输出转换为数据帧,而无需显式调用对象名称