避免覆盖R中的文本文件

时间:2015-04-30 16:13:56

标签: r append

我有以下简单的R代码:

sink("output.txt", type=c("output", "message"))
cat("Hello", append = TRUE)
cat("World", append = TRUE)
sink(NULL)

它只是将R控制台写入文本文件。我想把它放在一个R源文件(“.r”)中并运行多次。我希望输出如下:

file.show("output.txt")
Hello
World
Hello
World

如果我跑了两次,我现在看:

Hello
World

看起来它已被覆盖。

1 个答案:

答案 0 :(得分:6)

sink()有自己的append参数。正如Gregor所说,append中的cat()仅在使用file时才有效。

但是,如果您在append来电之间拨打所有cat()来电,则根本不需要使用sink(),因为sink()将会继续在您致电sink(NULL)

之前,请附加到该文件

但是对于你的情况,我认为你想为你的sink()块做这样的事情:

sink("output.txt", type=c("output", "message"), append = TRUE)
cat("Hello", "\n")
cat("World", "\n")
sink(NULL)

或更简单地说,

sink("output.txt", type=c("output", "message"), append = TRUE)
cat("Hello", "World", sep = "\n")
sink(NULL)

重复此操作两次,我们创建了文件并附加到其中

Hello
World
Hello
World