简体   繁体   English

包括在观星表上的注释会扭曲列之间的距离

[英]Including notes on stargazer table distorts distance between columns

I'm trying to print some tables of my plm models using stargazer package.我正在尝试使用 stargazer package 打印我的 plm 模型的一些表格。 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.不幸的是,当我添加注释时,output 表被扭曲,每列之间有很大的空格。 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注意:我仍在学习 Latex,因此欢迎使用 html 的解决方案

#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 LaTeX解决方案

I had a similar issue, and here's my solution for LaTeX.我遇到了类似的问题,这是我针对 LaTeX 的解决方案。

First, you need a separate function that creates its own minipage where the note is included.首先,您需要一个单独的 function 来创建包含注释的自己的 minipage。

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.) (您可能想要使用参数{0.95\\textwidth} 。有些人喜欢稍微宽一点或窄一点的音符宽度。)

Create your stargazer latex table without the note as follows:创建您的 stargazer latex 表,不带以下注释:

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 \\ .这是第一个问题:LaTeX 将%符号解释为注释符号,因此您需要通过在%前面加上\\来转义它们。

Now you can use the function above to collate the note and the LaTeX table:现在您可以使用上面的 function 来整理笔记和 LaTeX 表:

stargazernote(s, note=note, outputfile='foo.tex')

The output looks like this: output 看起来像这样: 在此处输入图像描述

The second gotcha is that you need to remember to include graphicx in your LaTeX file.第二个问题是您需要记住在 LaTeX 文件中包含 graphicsx。 Here's what a.tex file might look like:这是 a.tex 文件的样子:

\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 ):您可以像这样强制更改注释中的行(这是从这个 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: 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)   

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM