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

如何循环读取不同文件夹中对应分组的RDS文件?

解决方案

先从其中一个文件夹提取所有分组名称(由于两组分组一一对应,取任意一个文件夹即可),之后循环遍历每个分组,读取对应路径下的RDS文件,再执行你的滚动连接逻辑,最后保存结果。

代码实现

# 定义路径
path1 <- "你的第一个文件夹路径"
path2 <- "你的第二个文件夹路径"
output_path <- "结果输出文件夹路径"

# 创建输出文件夹(不存在则自动创建)
if (!dir.exists(output_path)) {
  dir.create(output_path, recursive = TRUE)
}

# 获取所有分组名称(从path1提取,去除.RDS后缀)
group_names <- sub("\\.RDS$", "", list.files(path1, pattern = "\\.RDS$"))

# 循环处理每个分组
for (group in group_names) {
  # 构造两个分组文件的完整路径
  file_path1 <- file.path(path1, paste0(group, ".RDS"))
  file_path2 <- file.path(path2, paste0(group, ".RDS"))
  
  # 读取分组数据
  df1_group <- readRDS(file_path1)
  df2_group <- readRDS(file_path2)
  
  # --------------------------
  # 此处插入你的滚动连接逻辑
  # 示例(以data.table滚动连接为例,按需替换):
  # library(data.table)
  # setDT(df1_group)
  # setDT(df2_group)
  # result_df <- df1_group[df2_group, on = .(your_key_column), roll = TRUE]
  # --------------------------
  
  # 保存处理后的结果
  saveRDS(result_df, file = file.path(output_path, paste0(group, "_result.RDS")))
  
  # 清理临时变量,释放内存
  rm(df1_group, df2_group, result_df)
  gc()
}

额外提示

  • 用file.path()构造路径更稳妥,它会自动适配Windows、Linux/macOS的路径分隔符,避免手动拼接出现错误。
  • 可以提前校验两个文件夹的分组是否完全匹配,避免出现找不到文件的情况:
# 校验分组一致性
group_names2 <- sub("\\.RDS$", "", list.files(path2, pattern = "\\.RDS$"))
if (!all.equal(sort(group_names), sort(group_names2))) {
  stop("两个文件夹的分组不匹配,请检查文件!")
}

内容的提问来源于stack exchange,提问作者Jef van Cappellen

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.21 22:23:22