在R包中使用数据集

时间:2018-01-04 23:50:46

标签: r cran

我正在尝试在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

我发现这特别令人沮丧,因为正如我所说,这个功能甚至没有导出(它也可以无故投压,因为包加载了这个数据集)。所有帮助表示赞赏

1 个答案:

答案 0 :(得分:0)

该解决方案似乎涉及一些重复。根据Thomas Lumley的建议,我将对象放在save(...)中,并将其放在R/sysdata.rda中。我遵循Hadley Wickham的建议,使用data/USCaucs.rda将参数devtools::use_data设置为internal,以便以正确的方式保存它。

如上所述,此解决方案涉及复制数据。这对于像我这里的小物件来说不是一个问题,但我想认为那里有更优雅的解决方案。