我正在尝试匹配具有相似文件名的文件,以将其用作函数的输入。例如,如果目录中的文件名为:
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.macaque.R2.fastq.gz是成对的,并且应该分别作为x和y输入到将读取这些文件的函数中?
我希望找到一个函数,它可以迭代目录中的所有文件对(它们都以不同的名称开头,例如atac.human和atac.macaque),然后应用于我使用的文件读取函数。
发布于 2020-02-21 11:49:13
每个文件都会有一对吗?如果是,那么您可以获得文件路径的向量,并在对名称进行排序后将它们放入矩阵中。
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)https://stackoverflow.com/questions/60331690
复制相似问题