为什么赢得“cat”附加到`file`连接?

时间:2013-07-17 21:21:42

标签: r

我运行了这两个代码块,期望输出相同

cattest <- file("cattest.txt")
cat("First thing", file = cattest)
cat("Second thing", file = cattest, append = TRUE)
close(cattest)

sink("cattest_sink.txt")
cat("First thing")
cat("Second thing")
sink()

但结果cattest.txt仅包含“第二件事”,而cattest_sink.txt包含我所期望的,“第一件事”。为什么append参数被文件连接忽略?

我在Windows上运行64位R 3.0.1,以防万一。

2 个答案:

答案 0 :(得分:6)

因为?cat如果file不是文件的名称,它就会这样做。

  

追加:逻辑。仅在参数'file'是文件名时使用             (而不是连接或'“| cmd”')。如果'TRUE'输出将是             附加到'文件';否则,它将覆盖内容             'file'。

答案 1 :(得分:4)

使用cat附加文字的一种方法是打开模式a的文件连接。

cattest <- file("cattest.txt")
cat("First thing", file = cattest, fill = TRUE)
close(cattest)

cattest <- file("cattest.txt", open = "a")
cat("Second thing", file = cattest)
close(cattest)