You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

R包data-raw目录预处理脚本未执行问题排查

问题诊断与解决方案

核心误解:data-raw 目录脚本不会自动执行

你之前的认知有误——data-raw 目录下的脚本并非包构建/安装过程中自动运行的。这个目录的设计只是用来存放数据集的预处理代码,方便开发者维护数据生成逻辑,需要你手动执行脚本,将处理好的数据集保存到 data/ 目录(格式为 .rda 或 .rdata),才能让包的使用者通过 data() 加载。

目标包的具体问题

查看你测试的 ces 包仓库:

  • data/ 目录是空的,没有预先生成的 df.rda(或类似)文件,所以安装后自然找不到该数据集
  • data-raw/ 里的脚本没有被执行过,也就没有生成可供加载的数据集文件

R CMD check 无报错的原因

R CMD check 只会验证包的结构合法性、代码语法、文档一致性等,不会检查 data/ 目录是否存在数据集——只要你没有在包的文档(比如 DESCRIPTION 或帮助文档)中声明存在某个数据集,check 就不会报错。

修复步骤

  1. 手动执行 data-raw 脚本:
    打开包项目,运行 data-raw/ 下的预处理脚本,将处理后的 df 对象保存到 data/ 目录:
    # 在脚本末尾添加保存代码
    usethis::use_data(df, overwrite = TRUE)
    # 或手动保存
    save(df, file = "data/df.rda")
    
  2. 添加数据集文档:
    用 roxygen2 为数据集编写帮助文档(比如在 R/data.R 中):
    #' 示例数据集
    #'
    #' 这是 ces 包的示例数据集 df
    #'
    #' @format 一个数据框,包含 X 行 Y 列
    #' @source 数据来源说明
    "df"
    
  3. 重新构建并安装包:
    devtools::document()
    devtools::install()
    # 或用 R CMD build/R CMD install
    
    之后再运行 library(ces); data(df) 就能正常加载数据了。

内容的提问来源于stack exchange,提问作者spindoctor

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.06 09:57:11