R 包开发:我应该将数据文件设为内部还是外部?



(再次尝试这个问题以使其更清楚。

我正在尝试编写一个包,以便更轻松地从 Web API 访问数据,并决定是否制作查找表和查询默认的内部数据或外部数据,如R 包的数据章节中所述。

据我了解,每种方法都有缺点。 内部数据适用于仅由包使用的数据,对用户不可见。它与包一起添加到包中,devtools::use_data(x, mtcars, internal = TRUE)这会将sysdata.rda添加到R/包文件夹中。但是,尽管包"需要"数据表,但我也希望我的数据对用户可见,以便他们可以纠正错误,并可能通过拉取请求添加其他数据文件以扩展包的功能。此外,由于我正在处理多个文件,目前并非所有文件都可用,因此每次进行更改时将所有内容重新捆绑到R/sysdata.rda似乎很不方便。

另一种方法是使查找表和查询默认外部数据,该外部数据使用默认internal = FALSE标志添加:devtools::use_data(x, mtcars),将mtcars.rda添加到data/包文件夹。优点是这样的数据对用户来说是清晰可见的,但缺点是我不知道如何在包函数中访问它而不会在运行时出现错误devtools::check()object 'querydefaults' not found.正确的方法是什么?

您可以将数据集添加为外部数据集和内部数据集,它解决了devtools::check()的问题。请参阅 RIC 包作为示例。