Foreach保存多类数据R

Foreach保存多类数据R,r,foreach,parallel-processing,parallel.foreach,doparallel,R,Foreach,Parallel Processing,Parallel.foreach,Doparallel,我想在R中的foreach循环中的列表中保存多个类。我这里有一个可复制的例子 cl <- makeCluster(4) registerDoParallel( cl) start_time <- Sys.time() acomb <- function(...) abind(..., along=3) results <-foreach(i = 1:10,.combine="acomb",.multicombine=TRUE, .packages=c('doPar

我想在
R
中的foreach循环中的列表中保存多个类。我这里有一个可复制的例子

cl <- makeCluster(4)
registerDoParallel( cl)
start_time <- Sys.time()

acomb <- function(...) abind(..., along=3)
results <-foreach(i = 
1:10,.combine="acomb",.multicombine=TRUE,
  .packages=c('doParallel','foreach','base','abind')) %dopar% {
a = array(data=sample(rnorm(100000, mean=i, sd=1),9000),dim=c(3,3,1000))
aperm(a,c(2,1,3))
}
stopCluster(cl)
end_time <- Sys.time()
end_time - start_time

cl在foreach中返回一个列表,不要直接合并:

results2 <- foreach(i = 1:10, .packages=c('doParallel','foreach','base','abind')) %dopar% {
                    a = array(data=sample(rnorm(100000, mean=i, sd=1),9000),dim=c(3,3,1000))
                    res <- aperm(a,c(2,1,3))
                    sum <- apply(res, 3, sum)
                    list(data = res, sum = sum, mean = sum / prod(dim(res)[-3]))
                  }

results2返回一个列表并更改组合方式。@F.Prive您能精确地告诉我应该在哪里更改代码吗?这就是我想要的。这是最有效的方法吗?第一部分是平行的,第二部分不是。这似乎是数据处理的额外步骤。谢谢这应该是有效的。
library(purrr)
final <- list(data = do.call(acomb, map(results2, "data")), 
              sum  = do.call(c, map(results2, "sum")), 
              mean = do.call(c, map(results2, "mean")))