2016-11-18 2 views
2

Je me demandais si quelqu'un est venu avec une solution pour montrer les catégories de référence des variables catégorielles en utilisant stargazer?R - stargazer ajouter des catégories de référence

library(stargazer) 

Imaginons que gear et carb sont variables

mtcars$gear = factor(mtcars$gear) 
mtcars$carb = factor(mtcars$carb) 

Je lance un ols avec

lm1 = lm(disp ~ gear + carb, mtcars) 

et stargaze les résultats.

stargazer(lm1, single.row = TRUE, omit.table.layout = "sn") 

Je reçois

enter image description here

Cependant, je me trouve toujours aller dans le fichier tex à la coutume les catégories de référence pour obtenir

enter image description here

Fondamentalement, ce que je faire est d'ajouter à la latex entre les variables:

gear (ref = 3) & \\ 
\-\hspace{0.3cm} gear4 & $-$202.921$^{***}$ (22.477) \\ 

et ainsi de suite.

Quelqu'un avait une idée si je peux ajouter ce genre de lines dans la fonction stargazer?

+0

Je pense que ce serait équivalent et peut-être plus facile de regrouper toutes les valeurs de référence au nom de la intercepter. –

+0

Pourriez-vous me montrer comment? – giacomo

Répondre

1

Si vous souhaitez accepter ma stratégie révisée, extrayez les noms de l'élément -lidt xlevels dans l'objet lm1 et leurs premiers niveaux associés et remplacez les valeurs de caractère collées par la valeur "(Intercept):

baselines = sapply(lm1$xlevels, "[[", 1) 
names(lm1$coefficients)[1] = paste0(names(baselines), " = ", baselines, 
            collapse="; ") 

maintenant je reçois:

stargazer(lm1, single.row = TRUE, omit.table.layout = "sn") 

% Table created by stargazer v.5.2 by Marek Hlavac, Harvard University. E-mail: hlavac at fas.harvard.edu 
% Date and time: Sat, Nov 19, 2016 - 07:49:18 
\begin{table}[!htbp] \centering 
    \caption{} 
    \label{} 
\begin{tabular}{@{\extracolsep{5pt}}lc} 
\\[-1.8ex]\hline 
\hline \\[-1.8ex] 
& \multicolumn{1}{c}{\textit{Dependent variable:}} \\ 
\cline{2-2} 
\\[-1.8ex] & disp \\ 
\hline \\[-1.8ex] 
gear = 3; carb = 1 & 250.226$^{***}$ (24.363) \\ 
    gear4 & $-$202.921$^{***}$ (22.477) \\ 
    gear5 & $-$160.898$^{***}$ (36.282) \\ 
    carb2 & 71.282$^{**}$ (27.919) \\ 
    carb3 & 25.574 (39.919) \\ 
    carb4 & 155.852$^{***}$ (27.355) \\ 
    carb6 & 55.672 (68.065) \\ 
    carb8 & 211.672$^{***}$ (68.065) \\ 
\hline \\[-1.8ex] 
\hline 
\hline \\[-1.8ex] 
\end{tabular} 
\end{table} 

Je ne semble pas avoir une plus toolchain de latex correctement configuré, probablement en raison des « caractéristiques de sécurité améliorées » Apple a introduit dans la dernière OSX « mise à niveau »

+0

c'est une solution intéressante merci – giacomo

2

Vous pouvez obtenir la sortie que vous voulez en fournissant covariate.labels à stargazer:

library(magrittr) 
library(stringr) 
library(stargazer) 

covlabels <- 
    names(lm1$coefficients)[-1] %>% 
    if_else(str_sub(., 1, 4) == "gear" | str_sub(., 1, 4) == "carb", paste("\\-\\hspace{0.3cm}", .), .) %>% 
    if_else(str_sub(., 18, 24) == "gear4", paste("gear (ref=3) \\\\", .), .) %>% 
    if_else(str_sub(., 18, 24) == "carb2", paste("carb (ref=1) \\\\", .), .) 

stargazer(lm1, single.row = TRUE, omit.table.layout = "sn", covariate.labels=covlabels) 

cède

% Table created by stargazer v.5.2 by Marek Hlavac, Harvard University. E-mail: hlavac at fas.harvard.edu 
% Date and time: Mon, Jan 08, 2018 - 3:18:09 AM 
\begin{table}[!htbp] \centering 
    \caption{} 
    \label{} 
\begin{tabular}{@{\extracolsep{5pt}}lc} 
\\[-1.8ex]\hline 
\hline \\[-1.8ex] 
& \multicolumn{1}{c}{\textit{Dependent variable:}} \\ 
\cline{2-2} 
\\[-1.8ex] & disp \\ 
\hline \\[-1.8ex] 
gear (ref=3) \\ \-\hspace{0.3cm} gear4 & $-$202.921$^{***}$ (22.477) \\ 
    \-\hspace{0.3cm} gear5 & $-$160.898$^{***}$ (36.282) \\ 
    carb (ref=1) \\ \-\hspace{0.3cm} carb2 & 71.282$^{**}$ (27.919) \\ 
    \-\hspace{0.3cm} carb3 & 25.574 (39.919) \\ 
    \-\hspace{0.3cm} carb4 & 155.852$^{***}$ (27.355) \\ 
    \-\hspace{0.3cm} carb6 & 55.672 (68.065) \\ 
    \-\hspace{0.3cm} carb8 & 211.672$^{***}$ (68.065) \\ 
    Constant & 250.226$^{***}$ (24.363) \\ 
\hline \\[-1.8ex] 
\hline 
\hline \\[-1.8ex] 
\end{tabular} 
\end{table}