R stargazer 包:从报告的测试统计数据中删除 "t =" 标签

R stargazer package: eliminate "t =" label from reported test statistics

我目前正在使用 stargazer 准备 table 回归结果。在此,我还想展示 t 统计数据。为此,我使用以下简化规范,如 http://jakeruss.com/cheatsheets/stargazer.html#report-t-statistics-or-p-values-instead-of-standard-errors

中所示
stargazer(output, output2, type = "html",
      report = "vc*t")

生成的 table 报告 t 统计量如下:

0.088    
t = 5.822***

现在我的问题是:每个模型和每个系数都会重复 "t ="。这在某种程度上是多余的,并且会降低 table.

的可读性

有没有办法只报告没有 "t =" 标签的 t 统计值?最好在括号中显示值。

谢谢!

这是可能的,但您必须编辑 stargazer 函数的源代码:

  1. 进入观星功能编辑界面 trace(stargazer:::.stargazer.wrap, edit = T)
  2. 转到第 7103/7104 行(可能会有所不同,具体取决于您的观星者 版本,例如,现在版本 5.2.2 的第 7053 和 7054 行。 2021 年 4 月)并寻找 .format.t.stats.left <- "t = ".format.t.stats.right <- "" 并根据您的喜好进行编辑,例如, .format.t.stats.left <- "[".format.t.stats.right <- "]"
  3. 点击“保存”确认。
  4. 每次重新启动 R 会话时都必须重做此步骤,因为对源代码的更改只是暂时的。

你的 stargazer(model1, type = "text", report = "vc*t") 的 stargazer 输出应该如下所示:

=======================================================================
                                         Dependent variable:           
                              -----------------------------------------
                                           daily_invcount2             
                                              negative                 
                                              binomial                 
-----------------------------------------------------------------------
log(lag_raised_amount + 1)                    -0.466***                
                                              [-7.290]                 
                                                                       
lag_target1                                   -0.661***                
                                              [-7.680]                 
                                                                                                                                                              
Constant                                      -3.480**                 
                                              [-5.490]                 
               
-----------------------------------------------------------------------
Observations                                    6,513                  
Log Likelihood                                 -8,834                
theta                                     1.840*** (0.081)             
Akaike Inf. Crit.                              17,924                
=======================================================================
Note:                         + p<0.1; * p<0.05; ** p<0.01; *** p<0.001

解决方法是捕获 stargazer 输出并对其进行编辑。这是一个示例,我将 stargazer 输出保存到一个文件,然后从该文件中编辑出 "t = "。

stargazer.save <- function(f.out, ...) {
# This is a wrapper function for saving stargazer output to file
output <- capture.output(stargazer(...))
cat(paste(output, collapse = "\n"), "\n", file=f.out, append=TRUE)
}

#save stargazer output (to e.g. a tex file)
stargazer.save(outfile, model.fit, report = "vc*t")

# read file back into R
u = readChar(outfile, file.info(outfile)$size)

# replace "t = " with a blank space
u = gsub("t = ","", u, ignore.case = F)

#write back to file
cat(u, file = outfile, append = F)