前言
今天小编在做线性回归的时候,突然想 R
能不能把结果以表格的形式输出呢?这样就不需要自己复制粘贴画表格啦。小编搜了一下果然有相关的 R
包—— stargazer
,现将自己关于该包的一些学习笔记分享给大家。
1. stargazer
简介
stargazer
包中只有 stargazer()
函数,其主要优势在于支持的模型数量多、易于使用以及表格的清楚美观。stargazer()
函数为格式良好的回归表创建 LATEX
代码、HTML
代码和 ASCII
文本,其中包括多个模型并排、汇总统计表和矩阵等。再结合 rmarkdown
、TEXworks
等,就可以一键输出非常好看的表格啦~
2. 安装及本文说明
2.1 安装
代码语言:javascript复制install.packages("stargazer") #安装包
library(stargazer) #加载包
输入上面的代码就可以直接安装和加载。
2.2 本文说明
由于 stargazer()
的参数 type
中可以指定输出 LATEX
代码、HTML
代码或 ASCII
文本,可将 R
中的输出结果粘贴到对应的编辑器上得到表格(例如 LATEX
代码可以粘贴到 TEXworks
等编辑器),故本文的结果显示直接以表格形式呈现。
本文使用 R
中自带的数据集 mtcars
来简要说明 stargazer()
函数的用法。
3. 使用方法
数据集 mtcars
中有 mpg
、 cyl
等 11 个变量, 32 个观察值。
library(stargazer) #加载包
data(mtcars)
head(mtcars)#展示数据前6行
#> head(mtcars)
# mpg cyl disp hp drat wt qsec vs am gear carb
#Mazda RX4 21.0 6 160 110 3.90 2.620 16.46 0 1 4 4
#Mazda RX4 Wag 21.0 6 160 110 3.90 2.875 17.02 0 1 4 4
#Datsun 710 22.8 4 108 93 3.85 2.320 18.61 1 1 4 1
#Hornet 4 Drive 21.4 6 258 110 3.08 3.215 19.44 1 0 3 1
#Hornet Sportabout 18.7 8 360 175 3.15 3.440 17.02 0 0 3 2
#Valiant 18.1 6 225 105 2.76 3.460 20.22 1 0 3 1
3.1 创建汇总统计表
- 例 1
创建汇总统计表并命名为 summary statistics table
。
#创建汇总统计表并命名为 `summary statistics table`
stargazer(mtcars,title = " summary statistics table")
Fig1. R 中 stargazer()
的输出结果
Fig 1 是 R
中 stargazer()
的直接输出结果,此处默认的是 LATEX
代码,接下来再将此 LATEX
代码粘贴到 TEXworks
中,就可以一键导出该表格啦。我们来看一下效果,如 Fig 2 所示。
Fig 2. 汇总统计表
3.2 多个模型并排
- 例 2
构建两个线性模型和一个 probit
模型并并排显示在表格中,如 Fig 3 所示。
# creat a linear model 1
linearmodel1 <- lm(vs ~ mpg cyl disp hp drat wt, data = mtcars)
# creat a linear model 1
linearmodel2 <- lm(vs ~ mpg cyl disp hp drat, data = mtcars)
## creat a probit model
probitmodel <- glm(vs ~ mpg cyl disp hp drat wt,
family = binomial(link = "probit"), data = mtcars)
stargazer(linearmodel1,linearmodel2,probitmodel,title = "Comparison Results")
Fig 3. 多个模型并排
3.3 置信区间
- 例 3
#置信区间
stargazer(linearmodel2, probitmodel, title="CI Results",
dep.var.labels=c("vs"),
covariate.labels=c("mpg","cyl",
"disp","hp","drat","wt"),
omit.stat=c("LL","ser","f"), ci=TRUE, ci.level=0.95, single.row=TRUE)
这里比较的是 linearmodel2
和 probitmodel
两个模型的置信区间结果。其中, omit.stat
参数表示不显示指定的统计量,ci
和 ci.level
表示是否显示置信区间和置信区间的水平, sing.row=TRUE
表示将系数和置信区间显示在同一行,如 Fig 4 所示。
Fig4. 置信区间
4. 结合 rmarkdown
由于 rmarkdown
兼容 LATEX
格式,还可以直接输出 HTML
、pdf
等格式的文档,因此 stargazer()
结合 rmarkdown
非常方便,省去了粘贴的步骤,写完代码 Knit
一键导出便可生成表格。下面是 stargazer()
结合 rmarkdown
生成汇总统计表的例子。
- 例 4
Fig 5. rmarkdown
代码
results='asis'
保证输出的是表格,而不是 LATEX
格式。
Fig 6. R markdown
生成表格
小编有话说
综上所述,stargazer()
生成表格的代码非常简单明了,输出的表格结果也十分简洁美观,并且对 LATEX
和 R
的初学者都比较友好,可适用的模型也非常多,具体可见该 R
包的帮助文档[1]。当然,除了 stargazer
以外,本公众号也介绍过 knitr
包和 pander
包的相关内容:1.5w字的Rmarkdown入门教程汇总,另外还有如 formattable[2] 包、gt[3] 包和 reactable[4] 包等,感兴趣的读者可以点击链接查看学习。
参考资料
[1]帮助文档: https://cran.r-project.org/web/packages/stargazer/vignettes/stargazer.pdf;https://cran.r-project.org/web/packages/stargazer/index.html
[2]formattable
: https://www.rdocumentation.org/packages/formattable/versions/0.2.1
[3]gt
: https://gt.rstudio.com/
[4]reactable
: https://www.rdocumentation.org/packages/reactable/versions/0.2.3