避免覆盖R中的文本文件

MTT*_*MTT 4 r append

我有以下简单的R代码:

sink("output.txt", type=c("output", "message"))
cat("Hello", append = TRUE)
cat("World", append = TRUE)
sink(NULL)
Run Code Online (Sandbox Code Playgroud)

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

file.show("output.txt")
Hello
World
Hello
World
Run Code Online (Sandbox Code Playgroud)

如果我运行两次,我现在看到:

Hello
World
Run Code Online (Sandbox Code Playgroud)

看起来它已被覆盖.

Ric*_*ven 6

sink()有自己的append论点.而作为格雷戈尔提到,appendcat()只有工作时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)
Run Code Online (Sandbox Code Playgroud)

或者更简单地说,

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

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

Hello
World
Hello
World
Run Code Online (Sandbox Code Playgroud)