フォルダからすべてのファイルをインポートし、ファイルを変換してから同じ名前でエクスポートしますが、別の拡張子を付けてエクスポートします。私は150個のネクサスファイル(.nex)はFASTAファイルに変換したい私の特定のケース(.fasta)R内のフォルダ内のすべてのファイルをループするR
ではこれは私がそれを一つずつをすれば、コードがどのように見えるかです:
library(ape)
gen1 <- read.nexus.data("gen1.nex") #import nexus file
write.dna(gen1, file = "./fastas/gen1.fasta", format = "fasta") #export fastafile
しかし、今私for-loopを1回の実行で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」という名前のファイルではなくgen1.fastaという名前のファイル150、gen2.fasta、DNAsequence1.fasta、DNAsequence2.fastaを取得しますどのようにfor-loopを変更して正しく動作させるべきですか?ペースト機能を使用する場合に
あなたは 'paste0( "./ fastas /"、I)' – akrun
や 'はsprintf( "./ fastas /%のs.fasta"、i)は' – plannapus
は、あなたのコメントをあなたの両方に感謝する必要があるかもしれません。 "paste0"では、エラーが発生します:内部の 'paste'に対する非文字列引数。 sprintfではエラーが出ます:サポートされていないタイプ – PaulH