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

如何在R中将不同文件夹下前缀相同的文件加载到一个dataframe中?

在R中批量读取指定文件夹下的目标文件到单个DataFrame

步骤1:获取所有目标文件的完整路径

先通过list.files()递归查找所有以01_qc-开头的文件,再筛选出存放在Data开头文件夹中的文件:

# 获取所有符合文件名前缀的文件完整路径
file_paths <- list.files(
  path = ".",  # 替换为你的根目录路径,比如"/home/user/data_root"
  pattern = "^01_qc-",  # 匹配文件名以01_qc-开头
  recursive = TRUE,
  full.names = TRUE
)

# 筛选出路径中包含"Data"文件夹的文件(确保只读取目标文件夹下的内容)
file_paths <- grep("Data", file_paths, value = TRUE)

步骤2:批量读取并合并为单个DataFrame

根据你的文件格式选择对应的读取函数,以下是两种常用方案:

方案一:使用tidyverse工具链(推荐)

如果是CSV/TSV等文本格式,用readr包的读取函数,配合purrr的map_df自动合并:

library(tidyverse)

# 读取所有文件并合并,可选添加来源文件列
combined_df <- map_df(file_paths, function(file) {
  read_csv(file) %>%  # 若为TSV则用read_tsv
    mutate(source_file = file)  # 新增列标记数据来源,可省略
})

方案二:使用基础R

无需额外安装包,适合快速处理:

# 批量读取文件到列表
file_list <- lapply(file_paths, read.csv)  # 其他格式对应read.table/read.delim等

# 合并列表为单个DataFrame
combined_df <- do.call(rbind, file_list)

注意事项

  • 如果是Excel文件,改用readxl包的read_excel函数,替换上述代码中的读取函数即可。
  • 若文件编码特殊(如GBK),可在读取函数中指定编码,例如read_csv(file, locale = locale(encoding = "GBK"))。
  • 确保所有文件的列名、列类型完全一致,否则合并时可能出现报错或数据错位。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.10 05:10:27