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

如何基于名称为多个data.frame批量添加对应年份的ANO列

批量为多个data.frame添加年份列的解决方案

可以通过以下步骤用lapply完成批量操作,无需逐个修改:

  1. 定义目标data.frame名称向量
    先把所有需要处理的data.frame的名称存成字符向量:

    df_names <- c("subset_2018_empenhada", "subset_2019_empenhada", "subset_2020_empenhada", "subset_2021_empenhada")
    
  2. 用lapply批量处理
    遍历名称向量,对每个data.frame执行提取年份、添加列的操作:

    modified_dfs <- lapply(df_names, function(name) {
      # 获取当前环境中的data.frame对象
      df <- get(name)
      # 从名称中提取四位数字的年份(适配你的命名规则)
      year <- as.integer(gsub(".*_(\\d{4})_.*", "\\1", name))
      # 添加ANO列,值为对应年份
      df$ANO <- year
      # 返回修改后的data.frame
      df
    })
    
  3. 将修改后的对象放回全局环境
    把处理后的data.frame列表重新命名并赋值回全局环境,覆盖原对象:

    names(modified_dfs) <- df_names
    list2env(modified_dfs, envir = .GlobalEnv)
    

说明

  • 正则表达式.*_(\\d{4})_.*会匹配名称中被下划线包裹的四位数字,刚好适配你的年份格式;后续若有其他年份的data.frame,只需把名称加入df_names向量即可。
  • 整个过程只需几行代码,无论data.frame数量多少都能高效完成。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.21 20:03:20