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

时间:2016-11-25 13:21:13

标签: r packages devtools

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

在这种情况下,问题是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)

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

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

1 个答案:

答案 0 :(得分:7)

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

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

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

相关问题