我尝试将并行 R 包foreach
用于高音 for 循环。out
应该是一个 3-d 数组,我不断得到一个 2-d 矩阵。一个简单的例子:
library(foreach)
library(doParallel)
aa <- seq(1,10, length=4)
bb <- seq(0,1, length=4)
cc <- seq(0,1, length=4)
fun <- function(a,b,c){return(a+b-c)}
out <- array(NaN, dim=c(4,4,4))
registerDoParallel()
out <- foreach(i = aa, .combine='cbind', .multicombine=TRUE) %dopar% {
foreach(j = bb, .combine='cbind', .multicombine=TRUE) %:%
foreach(k = cc, .combine='c') %dopar% { fun(i, j,k) }
}