我一直在使用R的doParallel
和foreach
包。我最近更新了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
并且问题消失了。
答案 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
包导致了问题。