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

如何用R批量处理同目录多文件并生成不同命名输出

R实现Excel批量处理脚本修改方案

核心逻辑

把单文件处理逻辑封装为函数,遍历输入目录下所有Excel文件,自动根据输入文件名生成对应输出文件名,无需手动修改路径和命名。

修改后的完整代码

# 加载依赖包
library(readxl)
library(writexl)

# 配置路径(仅需修改这两个路径)
input_dir <- "C:/Users/thoma/Desktop/PATENTS EU/raw data/PC_PATENTS/patents input to code_48_PC/"
output_dir <- "C:/Users/thoma/Desktop/PATENTS EU/CODE RESULTS/PATENTS_PC/48/"

# 定义批量处理函数
process_excel <- function(file_path) {
  # 1. 读取单个Excel文件
  data <- read_excel(file_path)
  
  # --------------------------
  # 2. 执行你的数据处理流程(把原来生成C3、MCp等的代码放在这里)
  # 示例占位:假设这里是你原来的处理逻辑,最终生成C3、MCp、dfMPP、dfMCC、cmplx_Country_Ind_output、cmplx_product_Ind_output
  # C3 <- ...
  # MCp <- ...
  # dfMPP <- ...
  # dfMCC <- ...
  # cmplx_Country_Ind_output <- ...
  # cmplx_product_Ind_output <- ...
  # --------------------------
  
  # 3. 提取输入文件名的核心标识(根据你的文件名规则调整)
  file_name <- basename(file_path)
  file_prefix <- tools::file_path_sans_ext(file_name)
  # 按示例规则提取年份并+1(输入2010→输出2011),若规则不同可自行修改
  year_part <- as.integer(strsplit(file_prefix, "_")[[1]][1]) + 1
  output_suffix <- paste0("_48_PC_", year_part, "_B.xlsx")
  
  # 4. 保存所有结果文件
  write_xlsx(C3, paste0(output_dir, "2ndtable", output_suffix))
  write_xlsx(MCp, paste0(output_dir, "RCA", output_suffix))
  write_xlsx(dfMPP, paste0(output_dir, "MPP", output_suffix))
  write_xlsx(dfMCC, paste0(output_dir, "MCC", output_suffix))
  write_xlsx(cmplx_Country_Ind_output, paste0(output_dir, "cmplx_Country_Ind_output", output_suffix))
  write_xlsx(cmplx_product_Ind_output, paste0(output_dir, "cmplx_product_Ind_output", output_suffix))
  
  cat("已完成处理:", file_name, "\n")
}

# 获取输入目录下所有Excel文件的路径
excel_files <- list.files(input_dir, pattern = "\\.xlsx$", full.names = TRUE)

# 批量处理所有文件
lapply(excel_files, process_excel)

关键说明

  • 路径配置:仅需修改input_dir和output_dir两个变量,指向你的输入文件夹和输出文件夹。
  • 文件名适配:如果输入文件名格式不是YYYY_xx_PC.xlsx,调整file_prefix和year_part的处理逻辑即可匹配你的命名规则。
  • 处理流程嵌入:将你原来写的生成C3、MCp等变量的代码,替换掉函数中的占位注释部分。
  • 批量执行:list.files自动抓取输入目录下所有.xlsx文件,lapply遍历每个文件调用处理函数。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.16 22:25:18