从包中的sysdata.rda自动加载数据

jkg*_*ain 5 packages r devtools

我花了很多时间寻找可能是一个非常基本的问题的答案,但我找不到我的问题的解决方案.我发现的最接近的是几年前的交换.

在这种情况下,问题是sysdata.rda文件在包中的正确目录中的位置.那不是我的问题.

我有一些变量可以存储我在包中使用的调色板之类的东西.这些变量仅在我的函数中使用,因此我将它们存储在R/sysdata.rda中.但是,当我加载包时,变量不会加载到包环境中.如果我从sysdata.rda手动加载数据,那么一切正常.

我阅读R软件包中内部数据所能找到的所有内容的印象是R/sysdata.rda中的数据会自动加载.

这是我用来存储数据的代码.

devtools::use_data(tmpBrks, tmpColors, prcpBrks, prcpChgBrks,
                   prcpChgBrkLabels, prcpColors, prcpChgColors,
                   internal = TRUE, overwrite = TRUE)
Run Code Online (Sandbox Code Playgroud)

这成功地在R/sysdata.rda创建了数据文件,当我手动加载数据时,数据就在文件中.

我需要做什么才能自动加载数据,以便我的包中的函数可以使用它们?

jkg*_*ain 8

像往常一样,这是用户无知和糟糕的R文档的糟糕组合.该数据加载并可用的功能.我出错的地方是假设数据在包环境中可见.事实并非如此.

据我所知,R\sysdata.rda文件中的内部数据可用于包中的函数,但不以任何方式显示.创建内部数据文件后,我在包环境中查找数据.当我没有看到它时,我认为它没有加载.当我继续推进我的软件包开发时,我终于意识到数据是静默加载的,并且可以访问软件包中的函数.

正如我的问题所得到的两票即票所证明的那样,我并不是唯一一个不理解R\sysdata.rda内部数据行为的人.希望这个解释能够为其他人节省大量时间来寻找这个并不存在的问题的答案.

  • 现在在 http://r-pkgs.had.co.nz/data.html 上有一些很好的文档,但它没有说明它是自动加载的,所以你的帖子对我有帮助,谢谢。 (2认同)