这是一个例子:
result <- array(1, c(7,7,7))
for(i in 1:7){
for(j in 1:7){
for(k in 1:7){
result[i,j,k] <- i*j*k
}
}
}
您可以使用%o%
比循环快得多的速度。这与使用相同outer
> 1:7 %o% 1:7 %o% 1:7
> identical(result, 1:7 %o% 1:7 %o% 1:7)
library("microbenchmark")
> microbenchmark(1:7 %o% 1:7 %o% 1:7, forloop = for(i in 1:7){
+ for(j in 1:7){
+ for(k in 1:7){
+ result[i,j,k] <- i*j*k
+ }
+ }
+ } )
Unit: microseconds
expr min lq mean median uq max neval
1:7 %o% 1:7 %o% 1:7 19.673 21.3000 30.54441 26.030 30.4610 269.072 100
forloop 680.274 693.1025 730.68298 703.042 716.6775 1367.285 100
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句