R包开发:添加数据集上传CRAN后调用提示不存在的问题咨询
自定义R包添加数据集操作流程
- 生成数据集文件:将预处理完成的数据集通过
save(目标数据集对象名, file = "数据集名.rda")命令导出为rda格式,要求导出的文件名和内部存储的对象名完全一致(大小写严格匹配) - 放置文件路径:在R包项目根目录下新建
data文件夹,将所有rda格式数据集放入该文件夹 - 配置包描述文件:打开项目根目录下的
DESCRIPTION文件,添加一行LazyData: true,该配置可让数据集在包加载后直接通过数据集名调用,无需额外运行data()命令 - 编写数据集文档:在
R目录下新建data.R文件,为每个数据集编写Roxygen2格式的说明文档,示例如下:
#' Rhone数据集 #' #' 此处填写Rhone数据集的具体描述,比如数据采集时间、适用场景等 #' #' @format 数据框格式,共N行M列,各字段含义如下: #' \describe{ #' \item{col1}{字段1的含义} #' \item{col2}{字段2的含义} #' } #' @source 此处填写数据的来源信息 "Rhone"
编写完成后运行devtools::document()命令生成对应的Rd格式帮助文档
- 本地校验:运行
devtools::check()命令完成全量检查,确认无报错
问题排查解决方案
你当前遇到的data(Rhone)提示数据集不存在,但R CMD check无错、帮助文档可正常打开的问题,优先排查以下几个常见原因:
- 检查DESCRIPTION配置:确认是否添加了
LazyData: true配置,若未添加,需指定包名调用数据集,命令为data(Rhone, package = "DEEVD"),修改配置后重新提交CRAN即可默认直接调用 - 检查构建忽略文件:打开项目根目录的
.Rbuildignore文件,确认是否误将data/目录加入了忽略列表,若存在该配置需要删除,否则CRAN构建发布的包不会包含data目录,自然无法找到数据集 - 验证数据集访问:安装DEEVD包后可先运行
DEEVD::Rhone直接调用数据集,如果可以正常返回数据,说明数据集本身打包正常,仅为调用路径或配置问题;如果该命令也报错,说明打包时未正确包含数据集文件,重新检查data目录下的文件名和内部对象名是否完全匹配
内容的提问来源于stack exchange,提问作者J AK
相关产品推荐
相关产品推荐

