0

是否可以在 for 循环中保存文档,以便第 i 次运行将保存一个名为 i.txt 的文档?我尝试了明显的:

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

但这只是保存了一个名为 i.txt 的文件。有什么方法可以轻松做到这一点?谢谢。

4

2 回答 2

5

当您编写时,file="i.txt"您正在创建一个固定字符串,即"i.txt".

您需要添加一些代码来获取当前值i并在字符串中使用它。一种选择是使用paste

paste(i, ".txt", sep="")

paste0或者使用sep=""默认使用的新的(在 R 2.15.0 中)快捷功能

因此,尝试:

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 回答