我想从一个文件夹中导入所有文件,转换文件,然后以相同的名称导出它们,但扩展名不同。在我的具体情况下,我想将 150 个 nexus 文件 (.nex) 转换为 fasta 文件 (.fasta)
如果我一一执行,这就是代码的外观:
library(ape)
gen1 <- read.nexus.data("gen1.nex") #import nexus file
write.dna(gen1, file = "./fastas/gen1.fasta", format = "fasta") #export fastafile
但是现在我无法制作一个有效的 for 循环来一次运行所有 150 个文件。这是我尝试过的:
library(ape)
filenames = dir(pattern="*.nex")
for (i in filenames){
i <- read.nexus.data(i)
write.dna(i, file = "./fastas/i.fasta", format = "fasta")
}
当我运行这段代码时,我只得到一个名为“i.fasta”的文件,而不是 150 个名为 gen1.fasta、gen2.fasta、DNAsequence1.fasta、DNAsequence2.fasta 等的文件。我应该如何更改 for 循环以使它工作正常吗?