(再次尝试这个问题,使其更清晰。)
我正在尝试编写一个程序包,以便更轻松地从Web API访问数据,并决定是否使查找表和查询默认内部或外部数据,如的Data chapter中所述R包。
据我了解,每个都有缺点。内部数据仅适用于包使用的数据,对用户不可见。它将devtools::use_data(x, mtcars, internal = TRUE)
添加到包中,并将sysdata.rda
添加到R/
包文件夹中。但是,虽然程序包“需要”数据表,但我也希望我的数据对用户可见,因此它们可以纠正错误,并可能通过pull请求添加其他数据文件以扩展程序包的功能。此外,由于我正在处理多个文件,目前并非所有文件都可用,每次更改时都将所有内容重新分配到R/sysdata.rda
似乎不方便。
另一种方法是使查找表和查询默认外部数据,使用默认internal = FALSE
标记添加devtools::use_data(x, mtcars)
,将mtcars.rda
添加到data/
包文件夹。优点是这些数据对于用户来说是清晰可见的,但缺点是我不知道如何从包函数中访问它而不会在运行devtools::check()
:object 'querydefaults' not found
时出错。这样做的正确方法是什么?