将R包中的函数导出到群集(并行处理)

5
我正在尝试再次使用parLapply(现在已成功地在这个上下文中使用它),但这次要并行化的函数包含来自mc2d软件包的一些函数(即deprt,ppert)。我在并行代码的前面安装和加载了该软件包。
我成功地使用集群导出将我的变量导出到聚集区,
clusterExport(C1, "variable")
...

然而,我尝试使用以下方式导出dpert和ppert函数:

clusterEvalQ(C1,dpert)

我收到了一个错误信息

object C1 not found

为什么它找不到C1?还有其他方法可以将R软件包函数导出到集群以进行并行处理吗?

2个回答

9
使用clusterExport可以导出函数...
clusterExport(Cl,c('dpert','variable'))

0

我无意中发现的另一种方法是在函数调用之前添加函数所属包的名称。例如,您可以在parLapply()(或任何其他parallel库函数)中使用rlang::syms()dplyr::group_indices(),而不是使用syms()group_indices()


1
你能给一个完整的 clusterExport 调用示例吗? - Dan Chaltiel

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接