0

我正在尝试学习如何在 R 中使用并行 foreach 循环:

我尝试运行以下代码:

testParForEach<-function(){

#testing a parallel for each loop

#to parallelize loop:
library(foreach)
library(doSNOW)
cl<-makeCluster(2)
registerDoSNOW(cl)

resultdf <- foreach(i=1:8, .combine='rbind') %dopar% {
 foreach(j=1:2, .combine='c') %do% {
  l <- runif(1, i, 100)
  i + j + l  
 }
}



return(resultdf)

#close cluster
stopCluster(cl)


 }

(我从 Stackoverflow 上的另一篇文章中得到)但出现错误:

{ 中的错误:任务 1 失败 - “konnte Funktion “%do%” nicht finden”

这意味着“找不到函数 %do%”。有没有人见过这个错误?

4

1 回答 1

0

那是因为是在包%do%中定义的。foreach外部并行化通过foreach启动单独的 R 进程(在您的情况下为 2),它们独立地执行要并行化的代码。但在这些过程中,没有foreach加载任何包。这是通过.packages-function 的 -paramter完成的foreach

您可以在此处找到一个示例。

于 2014-03-08T14:30:26.407 回答