我想導入文件夾中的所有文件,轉換文件,然後使用相同的名稱導出它們,但使用不同的擴展名。在我的特定情況下,我想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