我正在尝试在CRAN上获取我的软件包的最新版本(https://github.com/jmcurran/relSim)。这已被拒绝,因为在未导出的函数中使用了包中包含的数据集(即,除非用户使用:::
运算符,否则用户无法使用它。代码片段:
testIS = function(nc = c(3, 2), locus = 1, seed = 123456){
set.seed(seed)
np = 2 * nc[2]
freqs = USCaucs$freqs
数据集包含在包中,根据Hadley的建议,我的描述文件中有LazyData: true
。但是我从https://win-builder.r-project.org得到了这个说明,我不知道如何解决。
* checking R code for possible problems ... [11s] NOTE
testIS: no visible binding for global variable 'USCaucs'
Undefined global functions or variables::
USCaucs
我发现这特别令人沮丧,因为正如我所说,这个功能甚至没有导出(它也可以无故投压,因为包加载了这个数据集)。所有帮助表示赞赏
答案 0 :(得分:0)
该解决方案似乎涉及一些重复。根据Thomas Lumley的建议,我将对象放在save(...)
中,并将其放在R/sysdata.rda
中。我遵循Hadley Wickham的建议,使用data/USCaucs.rda
将参数devtools::use_data
设置为internal
,以便以正确的方式保存它。
如上所述,此解决方案涉及复制数据。这对于像我这里的小物件来说不是一个问题,但我想认为那里有更优雅的解决方案。