当我想用
保存回归结果时stargazer(regressions[[reg]], out=myFile, out.header=FALSE
stargazer
还会将结果显示/打印到控制台中。当我迭代几十个结果时,这会破坏我的概述和日志。有没有办法明确告诉stargazer
不仅要将输出保存到文件中,还要不要另外打印它?
我在stargazer_5.1
。
答案 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)
解决问题的最简单方法是:
output <- stargazer(..., type="text")
这会将输出存储为nx1矩阵,看起来不太好,因此您必须在第二步中将其转换
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)