i 番目の実行で i.txt というドキュメントが保存されるように、for ループ内でドキュメントを保存することは可能ですか? 私は明白なことを試しました:
for (i in 1:10) {
...
write.table(temp,file="i.txt",sep="\t", col.names=NA)
}
ただし、これは i.txt という 1 つのファイルを保存するだけです。これを簡単に行う方法はありますか?ありがとう。
i 番目の実行で i.txt というドキュメントが保存されるように、for ループ内でドキュメントを保存することは可能ですか? 私は明白なことを試しました:
for (i in 1:10) {
...
write.table(temp,file="i.txt",sep="\t", col.names=NA)
}
ただし、これは i.txt という 1 つのファイルを保存するだけです。これを簡単に行う方法はありますか?ありがとう。
あなたが書くとき、file="i.txt"
あなたは固定文字列を作成しています"i.txt"
。
の現在の値を取得して文字列で使用するコードを追加する必要がありi
ます。1 つのオプションは、次を使用することpaste
です。
paste(i, ".txt", sep="")
または、デフォルトで使用する新しい(R 2.15.0の)ショートカット機能paste0
を使用sep=""
します
したがって、試してください:
for (i in 1:10) {
...
write.table(temp,file=paste0(i, ".txt"),sep="\t", col.names=NA)
}
もう少し書式設定オプションが必要な場合は、sprintf() を見てください。
i <- c(1, 2, 10, 99, 100)
paste("file", i, ".txt", sep = "")
[1] "file1.txt" "file2.txt" "file10.txt" "file99.txt" "file100.txt"
sprintf("file%i.txt", i)
[1] "file1.txt" "file2.txt" "file10.txt" "file99.txt" "file100.txt"
sprintf("file%02i.txt", i)
[1] "file01.txt" "file02.txt" "file10.txt" "file99.txt" "file100.txt"
sprintf("file%03i.txt", i)
[1] "file001.txt" "file002.txt" "file010.txt" "file099.txt" "file100.txt"