22

我认为将包的内部数据集放入R/sysdata.rda其中可以使我的函数可以访问数据。但我似乎无法弄清楚如何实际访问这个数据框。没有任何文档真正说明如何访问数据,但我的猜测是我可以简单地按名称引用数据框。但是,这似乎不起作用。

我使用devtools::use_data()withinternal = TRUE并创建了 sysdata.rda。延迟加载设置为 TRUE。

为了测试它,我手动加载它只是为了确保它是正确的文件。该文件称为nhanes_files. 在我的函数中,我只是引用nhanes_files对象并提取必要的数据。当我在我的包项目中测试我的功能时,它似乎工作。当我构建并加载包,上传到 GitHub,然后将包安装到新项目中时,我收到错误: Error in find_data() : object 'nhanes_files' not found

我是否需要做其他事情才能使我的函数可以访问这些内部数据?

以下是最基本的功能,但不起作用:

#' Print NHANES file listing
#'
#' Provides access to the internal data listing all NHANES files
#'
#' @return A data frame with the list of files that can be accessed through the NHANES website.  Should not generally be used.  Present for debugging purposes and transparency.
#' @export
find_data <- function(){
    nhanes_files
}
4

2 回答 2

11

如果您的包名称是somepackage并且保存的对象是nhanes_filesdevtools::use_data(nhanes_files, internal = TRUE)那么您可以通过调用在您的函数中访问它somepackage:::nhanes_files。注意,这里有3个:

于 2017-10-05T19:23:41.140 回答
0

我用myobject <- get0("myobject", envir = asNamespace("mypackage")).

这个公式通过了R CMD CHECK。可以更改值的名称,并且可以访问其他加载的包中的对象。

于 2021-10-18T20:17:05.297 回答