如何在 R 中创建文本文件以输出不同变量的结果?

How to create a text file in R to output results from different variables?

我想知道如何从 R 脚本导出文本文件。我想预设一些要打印的文本,而不管结果如何,但我还想添加可能会在我的文本文件中更改的变量。我知道如何做到这一点的唯一方法是使用 sinkcat。问题是我必须为每个独立的行创建一个 cat 。有没有一种方法可以不用在每一行都使用 cat 来写一个大段落?

x = 1:10
sink("~/Desktop/TEST.txt", type=c("output", "message"), append = FALSE)
"===============================================================  \n
NEW MODEL  
===============================================================  
Summary of the model:"  
x 
# model.summary$BUGSoutput$sims.list
sink(NULL)

输出如下所示:

[1] "===============================================================  \n\nNEW MODEL  \n===============================================================  \nSummary of the model:"
 [1]  1  2  3  4  5  6  7  8  9 10

但我更喜欢这样的东西:

===============================================================
NEW MODEL
===============================================================

Summary of the model:
1  2  3  4  5  6  7  8  9 10

你可以这样写(但是有没有办法不在每一行都写 cat ?):

x = 1:10
sink("~/Desktop/TEST.txt", type=c("output", "message"), append = FALSE)
cat("===============================================================\n")
cat("NEW MODEL\n")
cat("===============================================================\n")
cat("Summary of the model:\n")
x 
cat("# model.summary$BUGSoutput$sims.list\n")
sink(NULL)

得到这个:

===============================================================
NEW MODEL
===============================================================
Summary of the model:
 [1]  1  2  3  4  5  6  7  8  9 10
# model.summary$BUGSoutput$sims.list

但有趣的是,这不起作用:

yo <- function(x) {
  sink("~/Desktop/potato.txt", type="output")
  writeLines("===============================================================
NEW MODEL
===============================================================
Summary of the model:")
x
# other stuff
  sink()

}

yo(1:10)

输出:

===============================================================
NEW MODEL
===============================================================
Summary of the model:

使用?writeLines。考虑:

sink(<file name>, type="output")
writeLines("===============================================================
NEW MODEL
===============================================================
Summary of the model:")
summary(model)
# other stuff
sink()