R语言如何遍历多目录文件 合并2021前缀文件夹下的summary.csv
R语言批量合并2021开头文件夹下的summary.csv数据
基础R循环实现(符合rbind合并要求)
直接运行以下代码即可实现需求:
# 1. 定位当前工作目录下所有名称以2021开头的文件夹 target_folders <- list.dirs( path = ".", pattern = "^2021", full.names = TRUE, recursive = FALSE ) # 2. 初始化空数据框用于存储合并结果 total_df <- data.frame() # 3. 循环读取并合并数据 for (folder in target_folders) { # 拼接得到当前文件夹下summary.csv的完整路径 csv_path <- file.path(folder, "summary.csv") # 读取当前csv数据 current_data <- read.csv(csv_path) # 用rbind合并到总数据框 total_df <- rbind(total_df, current_data) }
常见优化建议
- 若需要追溯数据来源,可以在读取后新增来源标识列:在
current_data <- read.csv(csv_path)后添加一行current_data$from_folder <- basename(folder)即可 - 若不同summary.csv的列结构存在差异,
rbind会报错,可以改用dplyr::bind_rows(total_df, current_data),会自动用NA填充缺失列 - 若csv存在编码问题,可在
read.csv中添加参数指定编码,例如read.csv(csv_path, encoding = "UTF-8")
内容的提问来源于stack exchange,提问作者Bahle
相关产品推荐
相关产品推荐

