当我想保存我的回归结果时
stargazer(regressions[[reg]], out=myFile, out.header=FALSE
stargazer
还会将结果显示/打印到控制台中。当我迭代几十个结果时,这会破坏我的概述和日志。有没有办法明确告诉stargazer
不仅要将输出保存到文件中,还要不另外打印它?
我在stargazer_5.1
。
您可以编写一个捕获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
导致所有表都保存到同一个文件中。如果您希望每个表都有单独的文件,请将其删除。
考虑到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)