12

当我想保存我的回归结果时

stargazer(regressions[[reg]], out=myFile, out.header=FALSE

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

我在stargazer_5.1

4

4 回答 4

10

您可以编写一个函数来捕获输出stargazer并将其保存到文件中,而不向控制台输出任何输出。例如,从这个 SO 答案改编代码:

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导致所有表都保存到同一个文件中。如果您想为每个表提供单独的文件,请将其删除。

于 2015-05-12T17:53:19.690 回答
6

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

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

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

于 2016-05-09T15:31:07.567 回答
0

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

  1. 将 stargazer 的输出存储在没有输出文件或 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)
于 2018-09-14T06:12:35.263 回答
0

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

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

于 2021-05-20T09:24:30.080 回答