在 R 循环中读取具有相同扩展名的每个文件的通配符

Wildcards to read every file with the same extension in an R loop

我正在尝试使用 for 循环在 R 中读取一些 vcf 文件。我所做的是遍历样本列表中的每个样本 ID,然后为每个样本创建一个变量,并为其分配相应的 vcf。

我有一个以每个sample ID命名的目录,里面只有一个vcf(但是每个vcf的名字和对应的sample ID不一样)

for(i in sampleList){
nam <- paste(i, '_vcf', sep="")
assign(nam, readVcf(i/*.vcf, 'hg19'))
}

问题是每个sample的vcf名称都不一样,而且和sample ID也不一样,不知道应该用哪个命令来读取。我想做一些像 *.vcf 这样的事情,例如,在 bash 脚本中。我如何在 R 中执行此操作?

有一个函数可以获取给定目录中的文件列表。

sampleList <- c(12345, 4711, 1337)。假设您的结构类似于

O:/12345_vcf/secret1.vcf
O:/4711_vcf/foo.vcf
O:/1337_vcf/bar.vcf

而且你不知道你的文件名,但是每个目录里面只有一个.vcf。

for (i in sampleList){ 
    directory <- paste0("O:/", i, "_vcf")
    filename  <- list.files(directory, ".vcf")  # if there are more than one vcf's, there are better ways
    nam       <- readVcf(paste0(directory, filename, sep="/"))
}

我不知道hg19的意思,所以我忽略了它。如有需要,请使用它。