如何在R包函数文档示例中引用data目录下的模型与数据集
在R包函数文档示例中引用data目录对象的方法
先把.rds文件转为R包兼容的数据格式
R包的data目录默认识别.rda/.RData格式文件,所以需要先将你的.rds文件转换为标准格式:
- 打开R,将工作目录切换到包项目根目录
- 读取.rds文件:假设你的数据集是
my_dataset.rds,模型对象是my_model.rds,执行以下代码:my_dataset <- readRDS("data/my_dataset.rds") my_model <- readRDS("data/my_model.rds") - 用devtools将对象保存为.rda格式:
这一步会在data目录生成对应的devtools::use_data(my_dataset, my_model, overwrite = TRUE).rda文件,包构建完成后,这些对象会自动注册为包的内置数据。
在函数文档示例中直接引用对象
不管是数据集还是模型对象,引用方式完全一致:
- 编写函数的Roxygen文档时,示例部分直接使用对象名即可,无需额外加载操作(包的内置数据会在示例运行时自动加载)
- 举个实际例子,假设你的函数是
my_process_func(),文档可以这么写:#' @title 数据处理示例函数 #' @description 基于内置数据集和模型的处理函数 #' @param input_data 待处理的输入数据 #' @return 处理后的结果 #' @examples #' # 使用内置数据集调用函数 #' result1 <- my_process_func(my_dataset) #' # 使用内置模型进行预测 #' result2 <- predict(my_model, newdata = my_dataset) #' @export my_process_func <- function(input_data) { # 这里编写函数逻辑 input_data }
注意事项
- 检查
DESCRIPTION文件中是否包含LazyData: true(用devtools创建的包默认已配置),开启该设置后数据会懒加载,用户无需手动调用data()函数加载 - 若不想转换为.rda格式,也可以在示例中直接读取rds文件,但需要写全路径:
readRDS(system.file("data", "my_dataset.rds", package = "你的包名")),不过这种方式不如内置数据便捷 - 包开发完成后,执行
devtools::check()检查示例是否能正常运行,避免路径或加载错误
内容的提问来源于stack exchange,提问作者The Rookie
相关产品推荐
相关产品推荐

