【发布时间】:2017-09-23 04:30:30
【问题描述】:
我想优化这个公式的实现。
x 是一个值数组。 i 从 1 变为 N,其中 N > 2400000。
对于i=0,i-1 是最后一个元素,对于i=lastElement,i+1 是第一个元素。这是我写的代码:
x <- 1:2400000
re <- array(data=NA, dim = NROW(x))
lastIndex = NROW(x)
for(i in 1:lastIndex){
if (i==1) {
re[i] = x[i]*x[i] - x[lastIndex]*x[i+1]
} else if(i==lastIndex) {
re[i] = x[i]*x[i] - x[i-1]*x[1]
} else {
re[i] = x[i]*x[i] - x[i-1]*x[i+1]
}
}
可以由apply 在 R 中完成吗?
【问题讨论】:
-
“优化它”是为了什么?紧凑性(见我的回答)性能? (使用
data.table) -
优化 w.r.t.性能。
-
Chetan,那么你必须编辑标题才能说出来。 “优化”本质上是模棱两可的。
标签: r performance formula apply indices