在for循环中命名依赖于“i”的文件

时间:2012-08-14 08:04:36

标签: r

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

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

但这只保存了一个名为i.txt的文件。有办法轻松做到这一点吗?感谢。

2 个答案:

答案 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"