【问题标题】:Generate multiple column names for multiple models using `stargazer()`使用 `stargazer()` 为多个模型生成多个列名
【发布时间】:2021-01-15 13:20:37
【问题描述】:

我正在尝试获取多个列标签,但从 stargazer() 解析它时遇到问题。我试图显示在不同子样本上估计的不同模型并描述列名中的分区。但是,它没有正确显示。

我已经检查了Getting Stargazer Column labels to print on two or three lines?Stargazer column on multiple lines with multiple models? 的问题,但它们并不是我所需要的。

PS:我的问题的动机来自于在表格中捕获来自this type of model 的树结构。

var1<-rnorm(100)
var2<-rnorm(100)
df<-data.frame(var1, var2)
mod<-lm(var1~var2)
library(stargazer)

stargazer(mod,mod,mod,mod,
          column.labels='Gender=Male Gender=Female   \\\\ & Age > 25  Age <= 25 Educ>12  Educ <=12')

结果

期望的输出

这就是我的 LaTeX 的样子。

% Table created by stargazer v.5.2.2 by Marek Hlavac, Harvard University. E-mail: hlavac at fas.harvard.edu
% Date and time: vie., ene. 15, 2021 - 13:58:54
\begin{table}[!htbp] \centering 
  \caption{} 
  \label{} 
\begin{tabular}{@{\extracolsep{5pt}}lcccc} 
\\[-1.8ex]\hline 
\hline \\[-1.8ex] 
 & \multicolumn{4}{c}{\textit{Dependent variable:}} \\ 
\cline{2-5} 
\\[-1.8ex] & \multicolumn{2}{c}{Gender$=$Male} & \multicolumn{2}{c}{Gender$=$Female} \\ 
\\[-1.8ex] & \multicolumn{1}{c}{Age$>$25} & \multicolumn{1}{c}{Age$<=$25} &\multicolumn{1}{c}{Educ$>$12} & \multicolumn{1}{c}{Educ$<=12$} \\
\\[-1.8ex] & (1) & (2) & (3) & (4)\\ 
\hline \\[-1.8ex] 
 var2 & 0.006 & 0.006 & 0.006 & 0.006 \\ 
  & (0.101) & (0.101) & (0.101) & (0.101) \\ 
  & & & & \\ 
 Constant & $-$0.012 & $-$0.012 & $-$0.012 & $-$0.012 \\ 
  & (0.105) & (0.105) & (0.105) & (0.105) \\ 
  & & & & \\ 
\hline \\[-1.8ex] 
Observations & 100 & 100 & 100 & 100 \\ 
R$^{2}$ & 0.00004 & 0.00004 & 0.00004 & 0.00004 \\ 
Adjusted R$^{2}$ & $-$0.010 & $-$0.010 & $-$0.010 & $-$0.010 \\ 
Residual Std. Error (df = 98) & 1.045 & 1.045 & 1.045 & 1.045 \\ 
F Statistic (df = 1; 98) & 0.004 & 0.004 & 0.004 & 0.004 \\ 
\hline 
\hline \\[-1.8ex] 
\textit{Note:}  & \multicolumn{4}{r}{$^{*}$p$<$0.1; $^{**}$p$<$0.05; $^{***}$p$<$0.01} \\ 
\end{tabular} 
\end{table} 

这是编译后的样子。

【问题讨论】:

    标签: r latex stargazer modelsummary


    【解决方案1】:

    我不知道如何在stargazer 中实现这一点,但使用modelsummarykableExtra 包很容易做到(免责声明:我是modelsummary 维护者):

    library(kableExtra)
    library(modelsummary)
    
    mod<-list(
      "(1)" = mod, 
      "(2)" = mod, 
      "(3)" = mod, 
      "(4)" = mod
    )
    
    modelsummary(mod, output = "latex") %>%
      add_header_above(c(" ", "Age>25" = 1, "Age<=25" = 1, "Educ>12" = 1, "Educ<=25" = 1)) %>%
      add_header_above(c(" ", "Gender=Male" = 2, "Gender=Female" = 2)) %>%
      add_header_above(c(" ", "Dependent variable:" = 4))
    

    【讨论】:

    • 谢谢,文森特太好了。我实际上切换到modelsummary,我喜欢它。 (我在问题中添加了modelsummary 标签,供未来读者参考)。但是,我对&lt;= 符号有一个小问题。我试图用它的 LaTeX 等效 $\leq$ 替换它,但我在我的 tex 文件上得到了 \$\textbackslash{}leq\$。关于如何解决它的任何线索?
    • 这是因为kableExtra 试图转义不会自动编译的字符。您可以使用不同数量的反斜杠和escape 选项。不确定到底什么会起作用,但请尝试以下操作:add_header_above("$\\\\leq$", escape=FALSE)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-09-06
    • 2016-04-04
    • 1970-01-01
    • 1970-01-01
    • 2017-04-22
    • 1970-01-01
    相关资源
    最近更新 更多