R语言如何循环遍历MESXX文件夹批量处理csv并导出至指定路径
R遍历多文件夹批量处理CSV解决方案
前置依赖
运行前需先加载所需扩展包:
library(tidyverse) library(janitor)
完整可运行代码
# 配置路径:root_dir为所有MESXX文件夹所在的上级目录,export_dir为结果输出目录 root_dir <- "/Users/Drive/MS/Ma/Ec/Effort_variation_Ec/" export_dir <- root_dir for (i in 1:30) { # 生成当前待处理的MES文件夹路径 current_folder <- file.path(root_dir, paste0("MES", i)) # 读取当前文件夹下所有CSV并合并,和你的原有逻辑完全一致 ecosmpr <- list.files(path = current_folder, pattern = "*.csv", full.names = TRUE) %>% map_df(~read_csv(.x, show_col_types = FALSE)) %>% as.data.frame() # 执行格式化处理 ecosmpr_processed <- ecosmpr[, -c(2:13)] %>% row_to_names(row_number = 1) # 列重命名 names(ecosmpr_processed) <- rev(c("detritus","phyto","peri","zoops","amphipods","inverts","leucisids","lns","yct5plus","yct4","yct3","yct2","yctyoy","lkt5plus","lkt34","lkt2","lkt7mo1yo","lktyoy","years")) # 导出结果,文件名自动匹配对应序号 export_path <- file.path(export_dir, paste0("ecosmpr", i, "_partialformat.csv")) write.csv(ecosmpr_processed, export_path, row.names = FALSE) }
注意事项
- 全程使用
file.path拼接路径,无需反复切换工作目录,避免路径冲突问题 - 新增
show_col_types = FALSE参数,屏蔽循环过程中冗余的列类型提示输出 - 若你的MES文件夹命名为双数字后缀(如MES01、MES02而非MES1),将
paste0("MES", i)替换为paste0("MES", stringr::str_pad(i, 2, pad = "0"))即可 - 如果你需要将结果导出到其他路径,直接修改export_dir参数的值即可
内容的提问来源于stack exchange,提问作者vermicellion
相关产品推荐
相关产品推荐

