在并行foreach中使用S4对象类
我有以下代码,可以工作:在并行foreach中使用S4对象类,r,foreach,s4,R,Foreach,S4,我有以下代码,可以工作: library(foreach) cl <- makeCluster(2) registerDoSNOW(cl) foreach(i = unique(iris$Species), .verbose = T , .multicombine = TRUE, .packages = c("data.table"), .export = "jsonEntityField") %do% { subset <- iris[Species %
library(foreach)
cl <- makeCluster(2)
registerDoSNOW(cl)
foreach(i = unique(iris$Species), .verbose = T , .multicombine = TRUE, .packages = c("data.table"),
.export = "jsonEntityField") %do% {
subset <- iris[Species %in% i]
candToEntityList(subset)
}
stopCluster(cl)
这些jsonEntityObjects
用于组成json字符串。
到目前为止还不错,但是当尝试使用%dopar%
更改%do%
以使其并行时,我得到了错误:
Error in e$fun(obj, substitute(ex), parent.frame(), e$data) :
unable to find variable "jsonEntityField"
如果删除导出
,则会显示错误:{:task 1 failed-“jsonetityfield”中的错误不是已定义的类“
有人知道发生了什么吗?
setClass
是S4,而不是S3!错误“找不到变量”是不相关的。每当您显式导出无效的对象名时(使用doSNOW后端时),就会发生此错误。您是否可以启动一个干净的R会话并重现错误,然后显示ls()的结果
?setClass
是S4,而不是S3!错误“找不到变量”是无关的。每当您显式导出无效的对象名时(使用doSNOW后端时),就会发生此错误。您是否可以启动一个干净的R会话并重现错误-然后显示ls()的结果?
Error in e$fun(obj, substitute(ex), parent.frame(), e$data) :
unable to find variable "jsonEntityField"