R包设计:如何将内部函数导出到集群

R包设计:如何将内部函数导出到集群,r,parallel-processing,r-package,R,Parallel Processing,R Package,我正在处理一个R包,我需要使用parallel::parlappy在集群上运行函数myfunmyfun从我的包中调用几个附加函数,这些函数又调用更多函数,其中一些函数有多个方法。。。因此,按名称显式地将所有函数和方法传递给集群是非常麻烦的 据我所知,最重要的是跑步 parallel::clusterEvalQ({library(“myu包”)})。但是调用库(“myu包”)显然是R-CMD-check的诅咒。我有理由相信我的包:::function也不会在CRAN上飞行 这里的标准方法是什么?我

我正在处理一个R包,我需要使用
parallel::parlappy
在集群上运行函数
myfun
myfun
从我的包中调用几个附加函数,这些函数又调用更多函数,其中一些函数有多个方法。。。因此,按名称显式地将所有函数和方法传递给集群是非常麻烦的

据我所知,最重要的是跑步
parallel::clusterEvalQ({library(“myu包”)})
。但是调用
库(“myu包”)
显然是R-CMD-check的诅咒。我有理由相信
我的包:::function
也不会在CRAN上飞行

这里的标准方法是什么?我需要按名称导出每个相关函数和方法吗?

好的,这似乎可行,(它通过了GitHub上的R-CMD-check):

希望对其他人有用


通过
globals
包也可能有一个很好的解决方案,但我无法通过对GitHub操作的检查。

包的用户可能无法使用内部函数,但包内的任何函数都可以轻松调用内部函数。您是否实际使用
并行测试了代码?@SinhNguyen问题是如何将函数导出到集群。我当然已经测试了代码,但我不知道自己在做什么,因为我主要在Mac上工作,并且通过分叉来完成多核的工作。@SinhNguyen还指出,挑战在于在本地无法获得一个有效的实现;挑战在于获得通过R-CMD-check的实现。R-CMD-check这件事只有在你想在CRAN上提交你的包时才是真正重要的,世界不会因为你得到警告就结束(我确实想在CRAN上提交我的包:)
parallel::clusterExport(cl = cl, 
                        unclass(lsf.str(envir = asNamespace("my_package"), 
                                        all = T)),
                        envir = as.environment(asNamespace("my_package"))
                        )