更新后,R obj必须是foreach对象错误

时间:2014-11-29 19:43:16

标签: r foreach parallel-processing

我一直在使用R的doParallelforeach包。我最近更新了R和这些软件包(不确定是否与此问题相关)并注意到此错误:

> foreach(a=1:3, b=rep(10, 3)) %do% (a + b)
Error in e$fun(obj, substitute(ex), parent.frame(), e$data) : 
  obj must be a foreach object

示例是来自foreach小插图的示例。问题是什么?

编辑:

启动新的R会话,重新安装doParallel并且问题消失了。

2 个答案:

答案 0 :(得分:4)

如果您在memisc套餐后加载doParallel,则会收到警告消息:

The following object(s) are masked from ‘package:foreach’:

    foreach

执行foreach循环现在将生成" obj必须是foreach对象"错误,因为您没有使用正确的foreach函数。

您可以使用::运算符来避免此问题:

foreach::foreach(a=1:3, b=rep(10, 3)) %do% (a + b)

答案 1 :(得分:3)

原来在memisc之前加载doParallel包导致了问题。