首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Stargazer:保存到文件,不在控制台中显示

Stargazer:保存到文件,不在控制台中显示
EN

Stack Overflow用户
提问于 2015-05-12 23:46:47
回答 4查看 10.2K关注 0票数 12

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

代码语言:javascript
复制
stargazer(regressions[[reg]], out=myFile, out.header=FALSE

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

我上stargazer_5.1了。

EN

回答 4

Stack Overflow用户

发布于 2015-05-13 01:53:20

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

代码语言:javascript
复制
mod_stargazer <- function(output.file, ...) {
  output <- capture.output(stargazer(...))
  cat(paste(output, collapse = "\n"), "\n", file=output.file, append=TRUE)
}

然后,运行该函数:

代码语言:javascript
复制
mod_stargazer(myfile, regressions[[reg]], header=FALSE)

append=TRUE会导致将所有表保存到同一个文件中。如果您希望每个表都有单独的文件,则将其删除。

票数 10
EN

Stack Overflow用户

发布于 2016-05-09 23:31:08

好的,根据eipi10的答案,您唯一需要的部分是

代码语言:javascript
复制
bla <- capture.output(stargazer(..., out=output.file))

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

票数 6
EN

Stack Overflow用户

发布于 2018-09-14 14:12:35

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

在没有输出文件或capture.output()的情况下,

  1. 将观星者的输出存储在一个对象中

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

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

  1. 将输出对象转换为良好的格式

2.a)使用dplyr:

代码语言:javascript
复制
output %>% paste(., collapse = "\n") %>% cat("\n")

2.b)不使用dplyr:

代码语言:javascript
复制
cat(paste(output, collapse = "\n"), "\n")

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

代码语言:javascript
复制
print_stargazer <- function(object) {
   cat(paste(object, collapse = "\n"), "\n")
}

然后像这样使用它:

代码语言:javascript
复制
output <- stargazer(..., type="text")
print_stargazer(object)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30195718

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档