我有以下简单的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
看起来它已被覆盖。
答案 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