观星者:保存到文件,不要在控制台中显示

时间:2015-05-12 15:46:47

标签: r stargazer

当我想用

保存回归结果时
stargazer(regressions[[reg]], out=myFile, out.header=FALSE

stargazer还会将结果显示/打印到控制台中。当我迭代几十个结果时,这会破坏我的概述和日志。有没有办法明确告诉stargazer不仅要将输出保存到文件中,还要不要另外打印它?

我在stargazer_5.1

4 个答案:

答案 0 :(得分:7)

您可以编写一个捕获stargazer输出的函数,并将其保存到文件中,而不向控制台输出任何内容。例如,调整this SO answer的代码:

mod_stargazer <- function(output.file, ...) {
  output <- capture.output(stargazer(...))
  cat(paste(output, collapse = "\n"), "\n", file=output.file, append=TRUE)
}

然后,运行该功能:

mod_stargazer(myfile, regressions[[reg]], header=FALSE)

append=TRUE会导致所有表格保存到同一个文件中。如果您想为每个表分别使用单独的文件,请将其删除。

答案 1 :(得分:6)

很好地给出了eipi10的答案,你需要的唯一部分是

bla <- capture.output(stargazer(..., out=output.file))

在stargazer中指定输出文件并以随机方式捕获输出,您只需删除或覆盖下一个表。 无需定义新功能。

答案 2 :(得分:0)

首先,设置工作目录。然后,如果您运行以下代码,它会将带有观星结果的文本文件保存到您的工作目录文件夹中。

model_results <- stargazer(model1, type = "text") capture.output(model_results, file = "model1.txt")

答案 3 :(得分:-1)

解决问题的最简单方法是:

  1. 将寻星者的输出存储在没有输出文件也没有capture.output()的对象中

output <- stargazer(..., type="text")

这会将输出存储为nx1矩阵,看起来不太好,因此您必须在第二步中将其转换

  1. 将输出对象转换为漂亮的格式

2.a)和dplyr:

output %>% paste(., collapse = "\n") %>% cat("\n")

2.b)没有dplyr:

cat(paste(output, collapse = "\n"), "\n")

2.c)作为函数,如果您真的喜欢这样:

print_stargazer <- function(object) {
   cat(paste(object, collapse = "\n"), "\n")
}

然后像这样使用它:

output <- stargazer(..., type="text")
print_stargazer(object)