是否可以在for循环中保存文档,以便第i次运行将保存名为i.txt的文档?我尝试了显而易见的事实:
for (i in 1:10) {
...
write.table(temp,file="i.txt",sep="\t", col.names=NA)
}
但这只保存了一个名为i.txt的文件。有办法轻松做到这一点吗?感谢。
答案 0 :(得分:5)
当你写file="i.txt"
时,你正在创建一个固定的字符串,即"i.txt"
。
您需要添加一些代码,该代码采用当前值i
并在字符串中使用它。一种选择是使用paste
:
paste(i, ".txt", sep="")
或者使用默认使用paste0
的新(在R 2.15.0中)快捷键功能sep=""
因此,请尝试:
for (i in 1:10) {
...
write.table(temp,file=paste0(i, ".txt"),sep="\t", col.names=NA)
}
答案 1 :(得分: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"