Jai*_*pta 5 r zoo xts performanceanalytics rollapply
我需要在xts数据上运行滚动窗口函数,该数据包含大约7,000行和11,000列.我做了以下事情:
require(PerformanceAnalytics)
ssd60<-rollapply(wddxts,width=60,FUN=function(x) SemiDeviation(x),by.column=TRUE)
Run Code Online (Sandbox Code Playgroud)
我等了12个小时,但计算没有完成.但是,当我尝试使用小数据集时,如下所示:
sample<-wddxts[,1:5]
ssd60<-rollapply(sample,width=60,FUN=function(x) SemiDeviation(x),by.column=TRUE)
Run Code Online (Sandbox Code Playgroud)
计算在60秒内完成.我在配备Intel i5-2450M CPU,Windows 7操作系统和12 GB RAM的计算机上运行它们.
任何人都可以建议我,如果有更快的方法在大型xts数据集上执行上述计算?
如果可以,将它们转换为动物园对象。 rollapply.zoo比rollapply.xts(在这种情况下。我不确定哪个更有效):
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
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1731 次 |
| 最近记录: |