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

如何批量合并同文件夹下多CSV文件,将变动列头转换为新列?

R语言多CSV批量合并解决方案

使用tidyverse套件可以简洁实现需求,核心通过宽表转长表处理动态Time列,同时规避原rbind列名不匹配的问题。

前置准备

如果未安装依赖包先执行安装:

install.packages("tidyverse")

完整代码

# 加载依赖
library(tidyverse)

# 批量读取、处理、合并一步完成
df_merged <- list.files(pattern = "*.csv") %>%
  map_dfr(~{
    # 读取单个CSV文件
    read_csv(.x, show_col_types = FALSE) %>%
      # 宽转长:识别Time开头的动态列,提取列名为timeperiod,列值存入Values
      pivot_longer(
        cols = starts_with("Time"),
        names_to = "timeperiod",
        values_to = "Values"
      ) %>%
      # 仅保留需要的列,自动丢弃无关的unneeded类列
      select(X, date, distance.code, location.code, timeperiod, Values)
  })

# 导出合并结果
write_csv(df_merged, "合并结果.csv")

适配说明

如果你的动态时间列并非统一以Time开头,可以修改pivot_longer的列匹配规则,自动识别固定列外的目标列:

pivot_longer(
  cols = -c(X, date, distance.code, location.code, starts_with("unneeded")),
  names_to = "timeperiod",
  values_to = "Values"
)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 02:27:01