R包数据文件Roxygen2警告:文档对象变量未在代码中定义
解决R包数据文档生成的「Variables with usage in documentation object 'mydata' but not in code: ‘mydata’」错误
错误核心原因
该错误是因为Roxygen2无法正确识别数据对象mydata的存在,或是数据文档的注释格式、数据文件的存放不符合R包规范导致的。
具体解决步骤
确认数据对象的存在与放置
确保mydata对象已按规范生成并存放:- 若为手动准备的数据,将
mydata.rda或mydata.RData文件放入R包的data/目录 - 若通过R脚本生成数据,在脚本中明确赋值并借助工具生成标准数据文件:
该命令会自动将数据保存到# 在R/目录下的脚本中定义数据 mydata <- data.frame(x = 1:10, y = rnorm(10)) usethis::use_data(mydata, overwrite = TRUE)data/目录,同时让Roxygen2识别到mydata对象。
- 若为手动准备的数据,将
修正Roxygen2注释的语法错误
你的注释存在格式问题,需调整为规范写法:#' My Title #' @docType data #' @keywords datasets #' @references my name (\href{https://doi.org/etc.}{DOI链接}) #' @source \href{https://source}{来源链接} "mydata"注意:
@references中的链接需整合到同一行,并用大括号包裹显示文本@source的href标签必须闭合大括号,避免语法报错
清理缓存并重新生成文档
运行命令强制清理旧文档并重新生成:devtools::document(clean = TRUE)若问题仍存在,可手动删除
man/目录下的mydata.Rd文件后再执行上述命令。检查R包配置文件
确认DESCRIPTION文件中包含正确配置:LazyData: true Roxygen: list(markdown = TRUE) # 可选,若使用markdown格式注释
内容的提问来源于stack exchange,提问作者generic
相关产品推荐
相关产品推荐

