前言
今天小编在做线性回归的时候,突然想 R
能不能把结果以表格的形式输出呢?这样就不需要自己复制粘贴画表格啦。小编搜了一下果然有相关的 R
包—— stargazer
,现将自己关于该包的一些学习笔记分享给大家。
1. stargazer 简介
stargazer
包中只有 stargazer()
函数,其主要优势在于支持的模型数量多、易于使用以及表格的清楚美观。stargazer()
函数为格式良好的回归表创建 LATEX
代码、HTML
代码和 ASCII
文本,其中包括多个模型并排、汇总统计表和矩阵等。再结合 rmarkdown
、TEXworks
等,就可以一键输出非常好看的表格啦~
2. 安装及本文说明
2.1 安装
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
格式。