r - R包设计:如何将内部函数导出到集群
问题描述
我正在开发一个 R 包,我需要myfun
使用parallel::parLapply
. myfun
从我的包中调用了几个额外的函数,这些函数又调用了更多函数,其中一些函数有多个方法……所以通过名称显式地将所有函数和方法传递给集群是非常麻烦的。
据我了解,标准建议是运行
parallel::clusterEvalQ({library("my_package")})
. 但是调用library("my_package")
显然是对 R-CMD-check 的厌恶。我有理由相信它my-package:::function
也不会在 CRAN 上飞行。
这里的标准方法是什么?我是否需要按名称导出每个相关的函数和方法?
解决方案
好的,这似乎可行,(它通过了 GitHub 上的 R-CMD-check):
parallel::clusterExport(cl = cl,
unclass(lsf.str(envir = asNamespace("my_package"),
all = T)),
envir = as.environment(asNamespace("my_package"))
)
希望对其他人有用。
该软件包可能还提供了一个漂亮的解决方案globals
,但我无法让它通过对 GitHub 操作的检查。
推荐阅读
- swift - 位置管理器在 gmsMapView swift 4.2 中显示错误位置
- java - 如何检查泛型类的反射类型
- python-3.x - CFFI 编译带有依赖项的 libpango?(泰国/弗里比迪/达特里)
- python - 允许程序取最近时间值的函数
- ios - 在 iOS 应用 Xcode 中连接 AWS RDS 和服务器实例
- scala - 如何从scala数据框中的日期列值中检索月份?
- mysql - mySQL加载数据本地infile错误号导入操作
- javascript - 在不使用 Manifest 的情况下将 JavaScript 文件添加到 webpack 构建
- ruby - 分配是红宝石MRI中的原子操作吗?
- c# - 如何在 ASP.NET Core MVC 2.2 中使用 SharedResource 进行数据注释?