R找不到%do%函数

时间:2014-03-08 13:11:51

标签: r parallel-foreach

我正在尝试学习如何在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%”。 有没有人见过这个错误?

1 个答案:

答案 0 :(得分:0)

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

您可以找到here的示例。