假设我想以并行方式myfunction
将myDataFrame
. 假设这otherDataFrame
是一个具有两列的数据框:COLUNM1_odf
并且COLUMN2_odf
由于某些原因在myfunction
. 所以我想写一个这样的代码parApply
:
clus <- makeCluster(4)
clusterExport(clus, list("myfunction","%>%"))
myfunction <- function(fst, snd) {
#otherFunction and aGlobalDataFrame are defined in the global env
otherFunction(aGlobalDataFrame)
# some code to create otherDataFrame **INTERNALLY** to this function
otherDataFrame %>% filter(COLUMN1_odf==fst & COLUMN2_odf==snd)
return(otherDataFrame)
}
do.call(bind_rows,parApply(clus,myDataFrame,1,function(r) { myfunction(r[1],r[2]) }
这里的问题是 R 无法识别COLUMN1_odf
,COLUMN2_odf
即使我将它们插入clusterExport
. 我怎么解决这个问题?有没有办法“导出”所有snow
需要的对象以便不枚举它们?
编辑 1:我添加了一条注释(在上面的代码中),以otherDataFrame
指定myfunction
.
编辑 2:我添加了一些伪代码以进行概括myfunction
:它现在使用全局数据框(aGlobalDataFrame
和另一个函数otherFunction
)