(再次尝试这个问题以使其更清楚。
我正在尝试编写一个包,以便更轻松地从 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 包作为示例。