我的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.
答案 0 :(得分:1)
我是该软件包的维护者,我从未想过这个场景。几个问题:
您可以向您的用户(您?)发送本地包(在tar.gz文件中)吗?
您是否还需要自定义RAM量?
我的想法是:克隆代码,在第2行here上的jpackage之后,在编辑过的zzz.R中调用options(java.parameters='-Xmx5g')
。您执行R CMD build bartMachine
获取程序包,将程序包发送给用户并将其安装在本地。