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

如何在R语言中使用正则表达式批量生成配对文件列表?

用正则表达式批量生成配对文件列表(R语言)

核心思路

通过提取文件名中的共同标识,自动将配对文件分组,替代手动逐个指定的繁琐操作。以下是针对常见配对文件命名规则的实现方案:

示例实现(以R1/R2配对文件为例)

假设你的文件命名规则为 样本ID_R1.后缀 和 样本ID_R2.后缀(比如测序数据的正向/反向读段),代码如下:

# 1. 获取目标目录下的所有配对文件(替换为你的实际路径)
file_names <- list.files(
  path = "./your_data_dir",
  pattern = "_R[12]\\.fastq$",  # 匹配_R1.fastq或_R2.fastq结尾的文件
  full.names = TRUE  # 可选:获取完整文件路径,而非仅文件名
)

# 2. 从文件名中提取配对的共同标识(样本ID)
sample_ids <- sub("^(.*)_R[12]\\.fastq$", "\\1", file_names)

# 3. 按样本ID分组生成配对文件列表
files <- split(file_names, sample_ids)

# 可选:过滤掉非配对的文件组(确保每个组有2个文件)
files <- files[sapply(files, length) == 2]

# 查看最终结构
str(files)

自定义适配(不同命名规则)

如果你的配对文件命名是其他规则(比如样本ID_forward.txt/样本ID_reverse.txt),只需调整正则表达式即可:

# 提取样本ID的正则适配
sample_ids <- sub("^(.*)_(forward|reverse)\\.txt$", "\\1", file_names)

输出结构说明

最终生成的files结构与你期望的一致:一个包含4个元素的list,每个元素是对应样本的两个配对文件路径/名称,示例str(files)输出如下:

List of 4
 $ sample1: chr [1:2] "./your_data_dir/sample1_R1.fastq" "./your_data_dir/sample1_R2.fastq"
 $ sample2: chr [1:2] "./your_data_dir/sample2_R1.fastq" "./your_data_dir/sample2_R2.fastq"
 $ sample3: chr [1:2] "./your_data_dir/sample3_R1.fastq" "./your_data_dir/sample3_R2.fastq"
 $ sample4: chr [1:2] "./your_data_dir/sample4_R1.fastq" "./your_data_dir/sample4_R2.fastq"

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.31 00:21:26