我正在尝试学习如何在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%”。 有没有人见过这个错误?
答案 0 :(得分:0)
这是因为%do%
包中定义了foreach
。通过foreach
的外部并行化开始单独的R进程(在您的情况下为2),它们独立地执行要并行化的代码。但是在这些进程中没有加载foreach
包。这是通过.packages
- 函数的foreach
- 参数完成的。
您可以找到here的示例。