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 函数的源代码:
- 进入观星功能编辑界面
trace(stargazer:::.stargazer.wrap, edit = T)
- 转到第 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 <- "]"
- 点击“保存”确认。
- 每次重新启动 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)
我目前正在使用 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 函数的源代码:
- 进入观星功能编辑界面
trace(stargazer:::.stargazer.wrap, edit = T)
- 转到第 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 <- "]"
- 点击“保存”确认。
- 每次重新启动 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)