I'm trying to print some tables of my plm models using stargazer package. Everything was ok until I tried to add notes to my table. Unfortunately, when I add notes, the output table is distorted, with big blank spaces between each column. Can anyone help me fix it? Thanks in advance!
Note: I'm still learning Latex, so a solution that also works with html would be welcome
#Here I create a simple data.frame just to replicate my data
vector <- rep(0,72)
for (i in 1:72) {
vector[i] <- rnorm(1)
}
data <- as.data.frame(matrix (vector, nrow = 7))
#This outputs a normal table, with normal space width between columns
stargazer(data,
type = "text",
style = "AER")
#This is the note I want to print. However, it returns an error if I space it out like that.
stargazer(data,
type = "text",
notes = c("All models were estimated by fixed effects estimator. Errors are robust to heteroscedasticity and
autocovariance. Numbers between parenthesis are the coefficient standard deviations. * represents
significance at the 10 % level, ** represents significance at the 5% level, and *** represents significance
at the 1% level. Models (1), (2) and (3) refer, respectively, to equations (7), (8) and (9)"),
style = "AER")
#This outputs the table. However, there are big blank spaces between columns. How do I fix this?
stargazer(data,
type = "text",
notes = c("All models were estimated by fixed effects estimator. Errors are robust to heteroscedasticity and autocovariance. Numbers between parenthesis are the coefficient standard deviations. * represents significance at the 10 % level, ** represents significance at the 5% level, and *** represents significance at the 1% level. Models (1), (2) and (3) refer, respectively, to equations (7), (8) and (9)"),
style = "AER")
LaTeX solution
I had a similar issue, and here's my solution for LaTeX.
First, you need a separate function that creates its own minipage where the note is included.
library(stargazer)
stargazernote <- function(starGazerCmd, outputfile, note){
# inserts 'note' to the end of stargazer generated latex table
ssn <- gsub(x=starGazerCmd, pattern='\\end{tabular}',
replacement=paste('\\end{tabular}', '\n',
'\\centerline{\\begin{minipage}{0.95\\textwidth}~\\', '\n',
'\\footnotesize{' , note,
'} \\end{minipage}}', sep=''), fixed=T)
cat(ssn,sep='\n',file=outputfile)
}
(You might want to play around with the parameter {0.95\\textwidth}
. Some people like slightly wider or narrower width for their notes.)
Create your stargazer latex table without the note as follows:
s <- stargazer(data,
type = "latex",
style = "AER",
notes.append=FALSE,
)
Then create the note separately:
note <- "All models were estimated by fixed effects estimator. Errors are robust to heteroscedasticity and autocovariance. Numbers between parenthesis are the coefficient standard deviations. * represents significance at the 10 \\% level, ** represents significance at the 5\\% level, and *** represents significance at the 1\\% level. Models (1), (2) and (3) refer, respectively, to equations (7), (8) and (9)"
Here's a first gotcha: the %
sign is interpreted as a comment symbol by LaTeX, so you need to escape your %
's by prepending them with \\
.
Now you can use the function above to collate the note and the LaTeX table:
stargazernote(s, note=note, outputfile='foo.tex')
The second gotcha is that you need to remember to include graphicx in your LaTeX file. Here's what a.tex file might look like:
\documentclass[english]{article}
\usepackage[T1]{fontenc}
\usepackage[latin9]{inputenc}
\usepackage{graphicx} %% note: the table will not render without this package.
\begin{document}
\include{foo.tex}
\end{document}
Text solution
You can force line changes in notes like this (this is copied from this SO question ):
stargazer(data,
type = "text",
notes= c("All models were estimated by fixed effects estimator.",
"Errors are robust to heteroscedasticity and autocovariance.",
"Numbers between parenthesis are the coefficient standard deviations.",
"* represents significance at the 10 % level",
"** represents significance at the 5% level,",
"and *** represents significance at the 1% level.",
"Models (1), (2) and (3) refer, respectively, to equations (7), (8) and (9)"),
style = "AER")
Output:
=================================================================================
Statistic N Mean St. Dev. Min Pctl(25) Pctl(75) Max
---------------------------------------------------------------------------------
V1 7 0.184 0.380 -0.230 -0.004 0.231 0.957
V2 7 -0.083 1.018 -1.246 -0.827 0.631 1.322
V3 7 -0.058 0.752 -0.733 -0.610 0.495 1.025
V4 7 -0.316 1.106 -2.223 -0.725 0.412 1.120
V5 7 -0.242 0.927 -1.777 -0.809 0.397 0.743
V6 7 -0.020 1.403 -1.453 -1.202 0.756 2.348
V7 7 0.565 1.130 -1.459 0.156 1.224 2.023
V8 7 0.840 0.938 -0.493 0.334 1.302 2.256
V9 7 -0.191 0.761 -1.012 -0.766 0.236 1.107
V10 7 0.530 0.643 -0.222 0.144 0.680 1.768
V11 7 0.263 0.396 -0.230 -0.004 0.432 0.957
---------------------------------------------------------------------------------
All models were estimated by fixed effects estimator.
Errors are robust to heteroscedasticity and autocovariance.
Numbers between parenthesis are the coefficient standard deviations.
* represents significance at the 10 % level
** represents significance at the 5% level,
and *** represents significance at the 1% level.
Models (1), (2) and (3) refer, respectively, to equations (7), (8) and (9)
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.