Introduction

This project aims to give a short tutorial on the stargazer package and to provide a basic understanding on how to create regression tables.

What is stargazer package?

How to use stargazer package?

The first step is to install the “stargazer” package in R, and load it.

#Installing the "stargazer" package
#install.packages( "stargazer")
#Load the package by calling the library
library(stargazer)
## Warning: package 'stargazer' was built under R version 4.0.3
## 
## Please cite as:
##  Hlavac, Marek (2018). stargazer: Well-Formatted Regression and Summary Statistics Tables.
##  R package version 5.2.2. https://CRAN.R-project.org/package=stargazer
stargazer(mtcars, type = "html")
Statistic N Mean St. Dev. Min Pctl(25) Pctl(75) Max
mpg 32 20.091 6.027 10 15.4 22.8 34
cyl 32 6.188 1.786 4 4 8 8
disp 32 230.722 123.939 71 120.8 326 472
hp 32 146.688 68.563 52 96.5 180 335
drat 32 3.597 0.535 2.760 3.080 3.920 4.930
wt 32 3.217 0.978 1.513 2.581 3.610 5.424
qsec 32 17.849 1.787 14.500 16.892 18.900 22.900
vs 32 0.438 0.504 0 0 1 1
am 32 0.406 0.499 0 0 1 1
gear 32 3.688 0.738 3 3 4 5
carb 32 2.812 1.615 1 2 4 8

The mtcars data set will be used for demonstration.

mtcars
##                      mpg cyl  disp  hp drat    wt  qsec vs am gear carb
## Mazda RX4           21.0   6 160.0 110 3.90 2.620 16.46  0  1    4    4
## Mazda RX4 Wag       21.0   6 160.0 110 3.90 2.875 17.02  0  1    4    4
## Datsun 710          22.8   4 108.0  93 3.85 2.320 18.61  1  1    4    1
## Hornet 4 Drive      21.4   6 258.0 110 3.08 3.215 19.44  1  0    3    1
## Hornet Sportabout   18.7   8 360.0 175 3.15 3.440 17.02  0  0    3    2
## Valiant             18.1   6 225.0 105 2.76 3.460 20.22  1  0    3    1
## Duster 360          14.3   8 360.0 245 3.21 3.570 15.84  0  0    3    4
## Merc 240D           24.4   4 146.7  62 3.69 3.190 20.00  1  0    4    2
## Merc 230            22.8   4 140.8  95 3.92 3.150 22.90  1  0    4    2
## Merc 280            19.2   6 167.6 123 3.92 3.440 18.30  1  0    4    4
## Merc 280C           17.8   6 167.6 123 3.92 3.440 18.90  1  0    4    4
## Merc 450SE          16.4   8 275.8 180 3.07 4.070 17.40  0  0    3    3
## Merc 450SL          17.3   8 275.8 180 3.07 3.730 17.60  0  0    3    3
## Merc 450SLC         15.2   8 275.8 180 3.07 3.780 18.00  0  0    3    3
## Cadillac Fleetwood  10.4   8 472.0 205 2.93 5.250 17.98  0  0    3    4
## Lincoln Continental 10.4   8 460.0 215 3.00 5.424 17.82  0  0    3    4
## Chrysler Imperial   14.7   8 440.0 230 3.23 5.345 17.42  0  0    3    4
## Fiat 128            32.4   4  78.7  66 4.08 2.200 19.47  1  1    4    1
## Honda Civic         30.4   4  75.7  52 4.93 1.615 18.52  1  1    4    2
## Toyota Corolla      33.9   4  71.1  65 4.22 1.835 19.90  1  1    4    1
## Toyota Corona       21.5   4 120.1  97 3.70 2.465 20.01  1  0    3    1
## Dodge Challenger    15.5   8 318.0 150 2.76 3.520 16.87  0  0    3    2
## AMC Javelin         15.2   8 304.0 150 3.15 3.435 17.30  0  0    3    2
## Camaro Z28          13.3   8 350.0 245 3.73 3.840 15.41  0  0    3    4
## Pontiac Firebird    19.2   8 400.0 175 3.08 3.845 17.05  0  0    3    2
## Fiat X1-9           27.3   4  79.0  66 4.08 1.935 18.90  1  1    4    1
## Porsche 914-2       26.0   4 120.3  91 4.43 2.140 16.70  0  1    5    2
## Lotus Europa        30.4   4  95.1 113 3.77 1.513 16.90  1  1    5    2
## Ford Pantera L      15.8   8 351.0 264 4.22 3.170 14.50  0  1    5    4
## Ferrari Dino        19.7   6 145.0 175 3.62 2.770 15.50  0  1    5    6
## Maserati Bora       15.0   8 301.0 335 3.54 3.570 14.60  0  1    5    8
## Volvo 142E          21.4   4 121.0 109 4.11 2.780 18.60  1  1    4    2
dat1 <- mtcars

The syntax for stargazer has four main arguments.

stargazer(dat1, type= "html", title= "Summary Statistics", out= "dat1.text")
Summary Statistics
Statistic N Mean St. Dev. Min Pctl(25) Pctl(75) Max
mpg 32 20.091 6.027 10 15.4 22.8 34
cyl 32 6.188 1.786 4 4 8 8
disp 32 230.722 123.939 71 120.8 326 472
hp 32 146.688 68.563 52 96.5 180 335
drat 32 3.597 0.535 2.760 3.080 3.920 4.930
wt 32 3.217 0.978 1.513 2.581 3.610 5.424
qsec 32 17.849 1.787 14.500 16.892 18.900 22.900
vs 32 0.438 0.504 0 0 1 1
am 32 0.406 0.499 0 0 1 1
gear 32 3.688 0.738 3 3 4 5
carb 32 2.812 1.615 1 2 4 8

If you only want to select certain variables, then use subset() to select. Lets choose cars with manual transmission.

stargazer(dat1[c("mpg","hp","drat")],
          title="Cars with Manual Transmission", 
          type= "html", digits =1, out="dat2.text") 
Cars with Manual Transmission
Statistic N Mean St. Dev. Min Pctl(25) Pctl(75) Max
mpg 32 20.1 6.0 10 15.4 22.8 34
hp 32 146.7 68.6 52 96.5 180 335
drat 32 3.6 0.5 2.8 3.1 3.9 4.9

The stargazer package has options to customize the appearance of the output which creates neat looking tables. By creating a vector with the covariate.labels argument will display an output with relabeled variables.

stargazer(dat1[c("mpg", "hp", "drat")], type = "html",
          title = "Summary Statistic for Cars with Manual Transmission",           out = "dat3.text", digits = 1, covariate.labels = c("Miles per           Gallon", "Horsepower", "Rear axle ratio"))
Summary Statistic for Cars with Manual Transmission
Statistic N Mean St. Dev. Min Pctl(25) Pctl(75) Max
Miles per Gallon 32 20.1 6.0 10 15.4 22.8 34
Horsepower 32 146.7 68.6 52 96.5 180 335
Rear axle ratio 32 3.6 0.5 2.8 3.1 3.9 4.9

Regression Output with stargazer

So far, we have seen that by passing a data frame to stargazer package creates a summary statistic table. This package is also extremely practical when it comes to creating regression models by simply passing a regression object.

m1 <- lm(mpg ~ hp, mtcars)
m2 <- lm(mpg~ drat, mtcars)
m3 <- lm(mpg ~ hp + drat, mtcars)
stargazer(m1, m2, m3,
          type = "html",
          digits = 1,
          header = FALSE,
          title= "Regression Results",
          covariate.labels = c("Miles per Gallon", "Horsepower", "Rear axle ratio"))
Regression Results
Dependent variable:
mpg
(1) (2) (3)
Miles per Gallon -0.1*** -0.1***
(0.01) (0.01)
Horsepower 7.7*** 4.7***
(1.5) (1.2)
Rear axle ratio 30.1*** -7.5 10.8**
(1.6) (5.5) (5.1)
Observations 32 32 32
R2 0.6 0.5 0.7
Adjusted R2 0.6 0.4 0.7
Residual Std. Error 3.9 (df = 30) 4.5 (df = 30) 3.2 (df = 29)
F Statistic 45.5*** (df = 1; 30) 26.0*** (df = 1; 30) 41.5*** (df = 2; 29)
Note: p<0.1; p<0.05; p<0.01

References: