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

R中如何通过变量名编程调用tar_read批量读取targets数据集

targets包编程批量读取target的解决方案

tar_read()默认使用非标准求值,会直接捕获传入的参数符号本身,不会解析符号指向的字符串值,所以直接传入存储target名的变量会触发找不到target的报错。targets包原生提供了标准求值的编程接口,无需自行处理NSE逻辑。

方案1:使用官方编程接口tar_read_raw()(推荐)

该函数专门适配编程场景,直接接受字符串格式的target名称,完美适配循环批量读取:

# 单个变量读取示例
target_name <- "data_a"
data <- tar_read_raw(target_name)

# lapply批量读取多个target示例
target_list <- c("data_a", "data_b", "data_c")
all_data <- lapply(target_list, tar_read_raw)

如果需要直接将多个target加载到当前工作环境,可以使用对应批量函数tar_load_raw():

# 直接将data_a、data_b加载到全局环境,无需手动逐个赋值
tar_load_raw(c("data_a", "data_b"))

方案2:在tar_read()中正确注入符号

如果你需要坚持使用tar_read(),需要先将字符串转换为符号对象再用!!注入,之前注入失败大概率是缺少转符号的步骤:

library(rlang)
target_name <- "data_a"
# 先将字符串转为符号再注入
data <- tar_read(!!sym(target_name))

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 14:45:06