我想会有更多的人对这个主题感兴趣。我有一些具体的任务要以最有效的方式完成。我的基础数据是: - 买入和卖出信号的时间指数 - 在时间指数上,我在最接近的买卖对之间拥有 ROC(变化率):
r <- array(data = NA,
dim = c(5, 5),
dimnames = list(buy_idx = c(1,5,9,12,16),
sell_idx = c(3,7,10,14,19)))
diag(r) <- c(1.04,0.97,1.07,1.21,1.1)
任务是在每个可能的窗口(买卖对)上生成移动的复合 ROC,以及我目前解决任务的方式:
for(i in 2:5){
r[1:(i-1),i] <- r[1:(i-1),i-1] * r[i,i]
}
直到我没有把它循环到上面的某个地方,我的解决方案的时间是非常可以接受的。有没有办法将此循环更改为矢量化解决方案?是否有任何记录良好的教程来学习 R 中的矢量化思维类型?- 它比一次性解决方案更有价值!
编辑 20130709:
下一个任务与上一个任务/示例高度相关。对每笔交易应用税值(税的百分比值)。当前解决方案:
diag(r[,]) <- diag(r[,]) * ((1-(tax/100))^2)
for(i in 2:dim(r)[2]){
r[1:(i-1),i] <- r[1:(i-1),i] * ((1-(tax/100))^(2*(i:2)))
}
你知道更有效的方法吗?如果这不能处理所有事情,或者更正确。