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

时间:2016-09-10 20:12:00

标签: r text cat sink

我想知道如何从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

你可以写这个(但有没有办法不在每行写猫?):

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:

1 个答案:

答案 0 :(得分:1)

使用?writeLines。考虑一下:

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