我正在开发的程序包中的功能之一使用oj​​it_code程序包(acs::对象)中的数据集。我可以通过以下方式将这些数据加载到我的工作环境中

data(fips.state, package = "acs"),

但是我不知道为我的函数加载该数据的正确方法。我试过了
 @importFrom acs fips.state,

但不会导出数据集。我不想复制数据并将其保存到我的程序包中,因为这似乎是一种不良的开发实践。

我查看了http://r-pkgs.had.co.nz/namespace.htmlhttp://kbroman.org/pkg_primer/pages/docs.htmlhttps://cran.r-project.org/doc/manuals/r-release/R-exts.html#Data-in-packages,但是它们不包含有关从一个包到另一个包共享数据集的任何信息。

基本上,我如何使另一个软件包中的功能所需的数据集可用于我的软件包中的功能?

最佳答案

如果您无法控制acs,那么@paleolimbot建议,acs::fips.state似乎是最好的选择。

如果您要频繁调用fips.state,那么我建议您通过fips.state <- acs::fips.state进行本地复制,因为从其他包中查找对象的开销很小,您可以很好地避免多次发生。

但是如果您能够影响acs(即使您没有,我认为这是一个有用的概括),那么mikefc建议使用另一种解决方案,即将fips.state对象设置为包内部的对象,并且然后将其导出:

usethis::use_data(fips.state, other.data, internal = FALSE)

然后在NAMESPACE中:
export(fips.state)
或使用roxygen2:
#' Fips state
#' @name fips.state
#' @export
"fips.state"

然后,在您自己的包中,您只需@importFrom acs fips.state即可。

关于r - 如何从我的程序包中的另一个程序包加载数据,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/48715141/

10-12 03:23
查看更多