在 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
的意思,所以我忽略了它。如有需要,请使用它。
我正在尝试使用 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
的意思,所以我忽略了它。如有需要,请使用它。