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

如何通过循环读取两个不同日期文件夹下的所有CSV文件并标识新旧

双日期文件夹同名CSV读取重命名解决方案

现有代码核心问题梳理

  • 循环内部拼接路径时误用了整个Date向量而非迭代变量i,导致路径生成错误
  • list.files函数的pattern参数错误放到了path参数的拼接字符串内,属于语法错误
  • 每次循环都会覆盖files变量,最终只能保留最后一个日期的文件列表
  • 没有关联两个日期对应的old/new标签,无法实现要求的命名规则

完整实现代码

首先加载依赖包:

# 未安装的话先运行 install.packages("stringr")
library(stringr)

主运行代码:

# 定义日期顺序,第一个对应old版本,第二个对应new版本
date_vec <- c("17JUL2021", "18AUG2021")
label_vec <- c("_old", "_new")
# 替换为你自己的文件基础存储路径
base_path <- "~datapath/"

# 遍历两个日期文件夹
for (date_idx in seq_along(date_vec)) {
  current_date <- date_vec[date_idx]
  current_label <- label_vec[date_idx]
  # 拼接当前日期对应的csv文件夹路径
  csv_path <- paste0(base_path, current_date, "/csv/")
  # 获取当前路径下所有csv文件的完整路径,兼容.CSV大写后缀
  csv_files <- list.files(path = csv_path, pattern = "\\.csv$", full.names = TRUE, ignore.case = TRUE)
  
  # 逐个读取文件并重命名
  for (file_path in csv_files) {
    # 提取不带后缀的原始文件名
    raw_filename <- str_remove(basename(file_path), "\\.csv$")
    # 拼接生成要求的变量名
    new_var_name <- paste0(raw_filename, current_label)
    # 读入文件并赋值给对应变量
    assign(new_var_name, read.csv(file_path, stringsAsFactors = FALSE))
  }
}

代码说明

  • 提前绑定日期和标签的对应关系,可自行调整日期顺序修改old/new对应规则
  • 自动适配大小写csv后缀,不需要额外处理文件名格式
  • 读入的同时完成变量命名,完全符合FILEA_old、FILEA_new的命名要求
  • 不需要单独写重命名步骤,避免路径拼接错误

可选优化建议

如果后续需要批量处理所有文件,建议将数据存入命名列表,比分散的独立变量更方便批量操作:

all_data <- list()
for (date_idx in seq_along(date_vec)) {
  current_date <- date_vec[date_idx]
  current_label <- label_vec[date_idx]
  csv_path <- paste0(base_path, current_date, "/csv/")
  csv_files <- list.files(path = csv_path, pattern = "\\.csv$", full.names = TRUE, ignore.case = TRUE)
  
  for (file_path in csv_files) {
    raw_filename <- str_remove(basename(file_path), "\\.csv$")
    new_var_name <- paste0(raw_filename, current_label)
    all_data[[new_var_name]] <- read.csv(file_path, stringsAsFactors = FALSE)
  }
}
# 调用方式为 all_data$FILEA_old 或者 all_data[["FILEA_old"]]

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.07 04:24:01