我想导入文件夹中的所有文件,转换文件,然后使用相同的名称导出它们,但使用不同的扩展名。在我的特定情况下,我想150个承上启下文件(.nex)转换为FASTA文件(.fasta)循环遍历R中的文件夹中的所有文件
这是怎样的代码看起来如果我去做了一个接一个:
library(ape)
gen1 <- read.nexus.data("gen1.nex") #import nexus file
write.dna(gen1, file = "./fastas/gen1.fasta", format = "fasta") #export fastafile
但现在我无法在一次运行中完成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-loop来使其工作正确?使用粘贴功能时
您可能需要'paste0( “./ fastas /” I)' – akrun
或'sprintf的( “./ fastas /%s.fasta”,我)' – plannapus
感谢你们的意见。使用“paste0”,我得到错误:内部'粘贴'的非字符串参数;而与sprintf,我得到的错误:不支持的类型 – PaulH