R语言如何批量合并文件夹内所有.xlsx文件为单个数据框
R批量合并同结构Excel文件方案
核心逻辑
不需要逐行手动写读取代码给每个文件单独赋值,通过文件系统匹配规则自动识别目标文件夹内的所有符合要求的Excel,批量读取后直接按行合并为单个数据框。后续新增同结构文件时,只要将文件放入指定文件夹,重新运行代码即可自动纳入合并范围,无需修改代码。
前置依赖
使用readxl包读取Excel文件,dplyr包做批量数据绑定,未安装的话先运行以下命令安装:
install.packages(c("readxl", "dplyr"))
安装完成后加载包:
library(readxl) library(dplyr)
完整实现代码
# 替换为你本地存放所有目标Excel文件的文件夹路径 target_folder <- "C:/your/local/excel_storage_folder" # 批量获取文件夹内所有符合规则的Excel文件路径 excel_file_list <- list.files( path = target_folder, # 匹配规则:仅识别文件名以xyz.xlsx结尾的文件,避免读入无关Excel pattern = "*xyz.xlsx", full.names = TRUE, recursive = FALSE # 若需要同时合并子文件夹内的文件,将该参数改为TRUE ) # 批量读取+合并 merged_data <- lapply(excel_file_list, function(single_file) { # 读取单个Excel文件 temp_df <- read_excel(single_file) # 可选操作:新增一列标记数据来源文件名,方便后续核对数据来源 temp_df$source_filename <- basename(single_file) return(temp_df) }) %>% bind_rows() # 按行合并所有读入的数据框
使用说明
- 代码运行完成后,合并好的完整数据存在
merged_data变量中,可直接用于后续分析 - 可通过
table(merged_data$source_filename)快速校验每个文件的读取行数,确认所有文件都被正确读入 - 如果需要合并文件夹内所有xlsx格式文件,不管文件名是否带xyz,将
pattern参数修改为"*.xlsx"即可;如果是旧版xls格式文件,对应修改匹配规则为"*.xls" - 若存在个别文件列名大小写不一致的情况,可在读取函数内增加
names(temp_df) <- tolower(names(temp_df))统一列名格式,避免合并时列错位
内容的提问来源于stack exchange,提问作者Robyn O'Halloran
相关产品推荐
相关产品推荐

