0

i 番目の実行で i.txt というドキュメントが保存されるように、for ループ内でドキュメントを保存することは可能ですか? 私は明白なことを試しました:

for (i in 1:10) {
...
write.table(temp,file="i.txt",sep="\t", col.names=NA)
}

ただし、これは i.txt という 1 つのファイルを保存するだけです。これを簡単に行う方法はありますか?ありがとう。

4

2 に答える 2

5

あなたが書くとき、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)
}
于 2012-08-14T08:06:21.503 に答える
3

もう少し書式設定オプションが必要な場合は、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"
于 2012-08-14T09:32:23.317 に答える