parallel::clusterExport-未导出的库/包函数

parallel::clusterExport-未导出的库/包函数,r,parallel-processing,testthat,R,Parallel Processing,Testthat,近似 但是如何将包的非导出函数导出到集群?由于某种原因,在提交给CRAN之前,此功能已通过,但在生产中不起作用。显然,我想修复并重新提交给CRAN library(imputeMulti) library(parallel) imputeMulti:::count_compare # function to be exported nnodes <- 2L cl <- parallel::makeCluster(nnodes) parallel::clusterExpor

近似

但是如何将包的非导出函数导出到集群?由于某种原因,在提交给CRAN之前,此功能已通过,但在生产中不起作用。显然,我想修复并重新提交给CRAN

library(imputeMulti)
library(parallel)
imputeMulti:::count_compare # function to be exported

nnodes <- 2L
cl <- parallel::makeCluster(nnodes)    

parallel::clusterExport(cl, varlist= c("count_compare")) # fails -- but initially passed tests
parallel::clusterExport(cl, varlist= c("count_compare"), envir= as.environment("package:imputeMulti")) # also fails

根据我的测试和工作,我不打算在未导出的库函数上使用
parallel::clusterExport

以下操作有效,但会导致1 R CMD检查注释:

R CMD检查结果
0个错误| 0个警告| 1个注意事项
正在检查R代码中的依赖项。。。注
代码中有:::对包的命名空间的调用。包裹 几乎不需要为自己的对象使用::: “计数比较”


count\u compare您可以使用对
clusterCall
的等效调用来执行此操作

parallel::clusterCall(cl, assign, "count_compare", count_compare, envir = .GlobalEnv)
请参阅的定义,以验证这是否正在执行相同的操作

count_compare <- imputeMulti:::count_compare 
parallel::clusterExport(cl, varlist= c("count_compare"), envir= 1)
parallel::clusterCall(cl, assign, "count_compare", count_compare, envir = .GlobalEnv)