R函数,用于选择两个文件名相似的文件



我正在尝试匹配具有相似文件名的文件,以用作函数的输入。例如如果目录中的文件名为:

atac.macaque.R1.fastq.gz
atac.macaque.R2.fastq.gz
atac.human.R1.fastq.gz
atac.human.R2.fastq.gz 

有没有一个函数可以识别atac.macaque.R1.fastq.gz和atac.macique.R2.fastq.gz是对的,应该分别作为x和y输入到将读取这些文件的函数中?

我希望找到一个函数,它可以遍历目录中的所有文件对(它们都以不同的名称开始,即atac.human与atac.macaque(,然后应用于我使用的文件读取函数。

每个文件都有一对吗?如果是,那么您可以获得文件路径的向量,并在对名称排序后将它们放入矩阵中。

x <- sort(list.files('/path/to/directory', pattern = "\.gz$"))
mat <- matrix(x, ncol = 2)
mat
#     [,1]                     [,2]                      
#[1,] "atac.human.R1.fastq.gz" "atac.macaque.R1.fastq.gz"
#[2,] "atac.human.R2.fastq.gz" "atac.macaque.R2.fastq.gz"

现在,每一列都是一对,如果你有一些函数以这两个文件为参数,你可以使用apply逐列将这些函数应用于每一对。

some_func <- function(x, y) #does some thing with x & y
apply(mat, 2, some_func)

最新更新