伙计们,通常当您执行以下操作时:
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/