包开发:在依赖关系加载之前设置选项

时间:2016-02-10 15:58:20

标签: r

我的R包有一个依赖项,在加载之前需要设置某个选项。在我的软件包的 zzz.r 文件的.onLoad函数中设置此选项不起作用,因为依赖项似乎在调用.onLoad之前加载。

如何保证在其依赖项加载之前为我的包的用户设置了某个选项?

以下是说明情况的示例包的链接:soExample.zip

我的示例中的依赖项是 bartMachine 包。有问题的设置控制Java可用的内存量。当我在交互模式下使用 bartMachine 时,我只需设置选项,加载 bartMachine ,然后启动消息就会通知我已识别出java.parameters选项我已经设置并为Java提供了所需的内存量。

options(java.parameters='-Xmx5g')
library(bartMachine)
# ....
# Welcome to bartMachine v1.2.1! You have 4.77GB memory available.

但是,当我加载依赖于 bartMachine 的包时,java.parameter中设置的.onLoad选项不会及时生效, bartMachine 仅使用默认的可用内存量。

library(soExample)
# ....
# Welcome to bartMachine v1.2.1! You have 0.48GB memory available.

1 个答案:

答案 0 :(得分:1)

我是该软件包的维护者,我从未想过这个场景。几个问题:

  1. 您可以向您的用户(您?)发送本地包(在tar.gz文件中)吗?

  2. 您是否还需要自定义RAM量?

  3. 我的想法是:克隆代码,在第2行here上的jpackage之后,在编辑过的zzz.R中调用options(java.parameters='-Xmx5g')。您执行R CMD build bartMachine获取程序包,将程序包发送给用户并将其安装在本地。