当我想保存我的回归结果时
stargazer(regressions[[reg]], out=myFile, out.header=FALSE
stargazer
还不断将结果显示/打印到控制台中。当我迭代数十个结果时,这会破坏我的概述和日志。有没有办法明确告诉stargazer
不仅将输出保存到文件中,而且不另外打印它?
我在stargazer_5.1
。
您可以编写一个函数来捕获输出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
导致所有表都保存到同一个文件中。如果您想为每个表提供单独的文件,请将其删除。
很好地给出了eipi10的答案,你唯一需要的部分是
bla <- capture.output(stargazer(..., out=output.file))
在 stargazer 中指定输出文件并随机捕获输出,您只需删除或覆盖下一个表即可。无需定义新功能。
解决问题的最简单方法是:
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)
首先,设置工作目录。然后,如果您运行以下代码,它会将包含 stargazer 结果的文本文件保存到您的工作目录文件夹中。
model_results <- stargazer(model1, type = "text") capture.output(model_results, file = "model1.txt")