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

R语言如何批量合并多组对应年份的data.frame数据框

问题原因

你当前代码的核心问题有两个:

  • merge()接收的是你拼接出来的字符串变量名,而非实际加载在环境中的数据框对象,需要用get()函数根据变量名字符串提取对应对象
  • 你原有消费数据框的命名是Con_年份,但循环里拼接的是Cons_年份,存在拼写错误

修正后的for循环代码

# 先定义年份向量
years <- c(2014, 2015, 2016)

for (i in years){
  assign(paste0("Con_Income_", i), 
         merge(get(paste0("Income_", i)), get(paste0("Con_", i)))
  )
}

提示:如果需要指定合并的主键列,可在merge函数中补充by/by.x/by.y参数,避免默认按所有同名字段合并出现不符合预期的结果

更推荐的实现方式(列表存储,更易管理)

批量生成多个全局变量后续维护成本很高,建议将合并后的数据统一存在命名列表中,调用更方便:

years <- c(2014, 2015, 2016)
# 初始化空列表
Con_Income_list <- list()
for (i in years){
  Con_Income_list[[as.character(i)]] <- merge(get(paste0("Income_", i)), get(paste0("Con_", i)))
}

# 调用示例:提取2014年合并后的数据
Con_Income_list[["2014"]]

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.23 18:15:03