【问题标题】:Wildcards to read every file with the same extension in an R loop在 R 循环中读取具有相同扩展名的每个文件的通配符
【发布时间】:2020-04-24 11:05:03
【问题描述】:

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

我有一个名为每个样本 ID 的目录,其中只有一个 vcf(但每个 vcf 的名称与其对应的样本 ID 不同)。

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

问题是每个样本的每个vcf的名称都不同,并且样本ID也不同,所以我不确定应该使用哪个命令来读取它。我想做一些 *.vcf 的事情,例如,在 bash 脚本中。我如何在 R 中做到这一点?

【问题讨论】:

    标签: r vcf-variant-call-format


    【解决方案1】:

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

    sampleList &lt;- 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 的含义,所以我忽略了它。如有必要,请使用它。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-01-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-11-01
      相关资源
      最近更新 更多