R 更快地替代功能';滚动应用';
我需要在包含大约7000行和11000列的xts数据上运行滚动窗口函数。我做了以下工作:R 更快地替代功能';滚动应用';,r,xts,zoo,performanceanalytics,rollapply,R,Xts,Zoo,Performanceanalytics,Rollapply,我需要在包含大约7000行和11000列的xts数据上运行滚动窗口函数。我做了以下工作: require(PerformanceAnalytics) ssd60<-rollapply(wddxts,width=60,FUN=function(x) SemiDeviation(x),by.column=TRUE) require(性能分析) ssd60如果可以,将它们转换为zoo对象rollappy.zoo比rollappy.xts更有效(在这种情况下,我不确定哪一个更有效): R>req
require(PerformanceAnalytics)
ssd60<-rollapply(wddxts,width=60,FUN=function(x) SemiDeviation(x),by.column=TRUE)
require(性能分析)
ssd60如果可以,将它们转换为zoo对象rollappy.zoo
比rollappy.xts
更有效(在这种情况下,我不确定哪一个更有效):
R>require(性能分析)
R> 种子(21)
R> x系统时间({
+r系统时间({
+试试包装汉克斯大卫,我会看一看。谢谢约书亚,花了大约4.5个小时。
sample<-wddxts[,1:5]
ssd60<-rollapply(sample,width=60,FUN=function(x) SemiDeviation(x),by.column=TRUE)
R> require(PerformanceAnalytics)
R> set.seed(21)
R> x <- .xts(rnorm(7000,0,0.01), 1:7000)
R> system.time({
+ r <- rollapply(x, 60, SemiDeviation, by.column=TRUE, fill=NA)
+ })
user system elapsed
9.936 0.111 10.075
R> system.time({
+ z <- rollapplyr(as.zoo(x), 60, SemiDeviation, by.column=TRUE, fill=NA)
+ })
user system elapsed
1.950 0.010 1.964