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

R脚本开发:读取符合命名规则的最新Excel并合并数据集导出

R脚本实现指定规则Excel文件匹配合并功能

前置依赖

运行前需先安装依赖包,执行如下命令:

install.packages(c("readxl", "writexl", "dplyr"))

可自定义配置项

以下参数可根据实际使用需求调整:

  • 工作目录路径:存储目标Excel文件的本地文件夹路径
  • 周期编号筛选范围:默认2015-2025,可修改起止数值
  • 输出文件后缀y:可选值a/b/c/d/e,按需指定
  • 第二个自定义数据集路径:替换为你本地第二个数据集的实际存储路径

完整实现代码

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

# -------------------------- 配置区 start --------------------------
# 工作目录
setwd("替换为你的本地文件夹路径")
# 周期筛选范围
period_min <- 2015
period_max <- 2025
# 输出文件后缀y
output_suffix <- "a"
# 第二个自定义数据集路径
second_file_path <- "替换为第二个数据集的实际路径,例如./custom_data.xlsx"
# -------------------------- 配置区 end --------------------------

# 1. 识别符合命名规则的最新文件
all_files <- list.files(pattern = "^abcd_all_(TET|KEK|KTET)_\\d{4}\\.xlsx$")
if (length(all_files) == 0) {
  stop("未匹配到符合命名规则的文件,请检查工作目录和命名规则")
}
# 提取周期编号筛选符合范围的文件
valid_files <- sapply(all_files, function(x) {
  period <- as.integer(sub("^abcd_all_(TET|KEK|KTET)_(\\d{4})\\.xlsx$", "\\2", x))
  return(period >= period_min & period <= period_max)
})
valid_files <- names(valid_files[valid_files])
if (length(valid_files) == 0) {
  stop("指定周期范围内无符合规则的文件")
}
# 按修改时间降序取最新文件
file_info <- file.info(valid_files)
latest_file <- rownames(file_info)[order(file_info$mtime, decreasing = TRUE)][1]
# 提取对应周期编号
target_period <- sub("^abcd_all_(TET|KEK|KTET)_(\\d{4})\\.xlsx$", "\\2", latest_file)

# 2. 读取两个数据集
df1 <- read_excel(latest_file)
df2 <- read_excel(second_file_path)

# 3. 按ID字段一对一merge,保存结果
merged_df <- merge(df1, df2, by = "ID", all = FALSE) # 如需左/右连接可调整all.x/all.y参数
output_filename <- paste0("CCC1_", target_period, "_", output_suffix, ".xlsx")
write_xlsx(merged_df, output_filename)
message("合并完成,结果已保存为:", output_filename)

注意事项

  • 若匹配到多个符合规则的文件,脚本默认取修改时间最新的文件
  • 两个数据集需均包含名为ID的字段,合并时会按该字段做一对一匹配
  • 若需调整合并逻辑(如保留全部左表数据、保留全部右表数据),可修改merge函数的all.x/all.y参数

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 23:54:02