首页 > 解决方案 > file.path 函数找不到文件

问题描述

我有一个代码,可以根据我的示例文件在文件夹中查找某些文件。

reads <- dir(path = file.path(reads_folder, samples$SAMPLE_ID), 
             pattern = "fastq.gz$", full.names = TRUE)

当我具有以下结构时,代码效果很好:reads_folder/SAMPLE_ID01/SAMPLE_ID_01.fastq.gz

但是我想更改我的文件结构并将其仅保留在一个文件夹中,例如reads_folder/SAMPLE_ID_01.fastq.gz。这样相同的代码不起作用,因为它期望 SAMPLE_ID 是一个文件夹。

有谁知道如何做到这一点,以便获取的文件只是我的示例文件中的文件?

标签: r

解决方案


如果要访问多个子文件夹中的文件,可以设置参数recursive = TRUE. 此外,要获得多个样本模式,您可以使用 收集值paste

multiple_samples <- paste0(samples$SAMPLE_ID, collapse = "|")
multiple_samples <- paste0("(", multiple_samples, ")+")

reads <- dir(path = reads_folder, 
             pattern = paste0(multiple_samples, ".*\\.fastq.gz$"), 
             full.names = TRUE, 
             recursive = TRUE)

推荐阅读