是否可以将文档保存在for循环中,以便第i次运行将保存称为i.txt的文档?我试过很明显的:依赖于“i”的for循环中的文件命名
for (i in 1:10) {
...
write.table(temp,file="i.txt",sep="\t", col.names=NA)
}
但这只是保存一个名为i.txt的文件。任何方式轻松做到这一点?谢谢。
是否可以将文档保存在for循环中,以便第i次运行将保存称为i.txt的文档?我试过很明显的:依赖于“i”的for循环中的文件命名
for (i in 1:10) {
...
write.table(temp,file="i.txt",sep="\t", col.names=NA)
}
但这只是保存一个名为i.txt的文件。任何方式轻松做到这一点?谢谢。
当您编写file="i.txt"
时,您正在创建一个固定的字符串,即"i.txt"
。
您需要添加一些采用当前值i
并在字符串中使用它的代码。一种选择是使用paste
:
paste(i, ".txt", sep="")
还是使用新的(在读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"
谢谢!这是完美的。 – 2012-08-14 08:11:17