2015-07-16 7 views
5

Ecco MWE:uscita multicolonna di Stargazer da utilizzare in knitr

library(pscl) 

data("bioChemists", package = "pscl") 

fm_pois <- glm(art ~ ., data = bioChemists, family = poisson) 
fm_qpois <- glm(art ~ ., data = bioChemists, family = quasipoisson) 
fm_nb <- glm.nb(art ~ ., data = bioChemists) 
fm_zinb <- zeroinfl(art ~ . | 1, data = bioChemists, dist = "negbin") 

library(stargazer) 
stargazer(
    fm_pois, fm_qpois, fm_nb, fm_zinb 
    , type = "text" 
) 

============================================================================= 
             Dependent variable:      
        ----------------------------------------------------------- 
               art        
        Poisson glm: quasipoisson  negative  zero-inflated 
           link = log   binomial  count data 
        (1)   (2)    (3)    (4)  
----------------------------------------------------------------------------- 
femWomen   -0.225***  -0.225***  -0.216***  -0.216*** 
        (0.055)  (0.074)   (0.073)   (0.073) 

marMarried   0.155**  0.155*   0.150*   0.150*  
        (0.061)  (0.083)   (0.082)   (0.082) 

kid5    -0.185***  -0.185***  -0.176***  -0.176*** 
        (0.040)  (0.054)   (0.053)   (0.053) 

phd     0.013   0.013   0.015   0.015  
        (0.026)  (0.036)   (0.036)   (0.036) 

ment    0.026***  0.026***   0.029***  0.029*** 
        (0.002)  (0.003)   (0.003)   (0.003) 

Constant   0.305***  0.305**   0.256*   0.256*  
        (0.103)  (0.139)   (0.137)   (0.139) 

----------------------------------------------------------------------------- 
Observations   915   915    915    915  
Log Likelihood -1,651.056      -1,561.958  -1,560.959 
theta           2.264*** (0.271)    
Akaike Inf. Crit. 3,314.113      3,135.917     
============================================================================= 
Note:            *p<0.1; **p<0.05; ***p<0.01 

Sto cercando di uscita più colonne come questo:

============================================================================= 
             Dependent variable:      
        ----------------------------------------------------------- 
               art        
          Poisson    Negative Binomial 

        Poisson  QuasiPoisson   NB   ZINB 

        (1)   (2)    (3)    (4)  
----------------------------------------------------------------------------- 
femWomen   -0.225***  -0.225***  -0.216***  -0.216*** 
        (0.055)  (0.074)   (0.073)   (0.073) 

marMarried   0.155**  0.155*   0.150*   0.150*  
        (0.061)  (0.083)   (0.082)   (0.082) 

kid5    -0.185***  -0.185***  -0.176***  -0.176*** 
        (0.040)  (0.054)   (0.053)   (0.053) 

phd     0.013   0.013   0.015   0.015  
        (0.026)  (0.036)   (0.036)   (0.036) 

ment    0.026***  0.026***   0.029***  0.029*** 
        (0.002)  (0.003)   (0.003)   (0.003) 

Constant   0.305***  0.305**   0.256*   0.256*  
        (0.103)  (0.139)   (0.137)   (0.139) 

----------------------------------------------------------------------------- 
Observations   915   915    915    915  
Log Likelihood -1,651.056      -1,561.958  -1,560.959 
theta           2.264*** (0.271)    
Akaike Inf. Crit. 3,314.113      3,135.917     
============================================================================= 
Note:            *p<0.1; **p<0.05; ***p<0.01 
  1. Prima fila dovrebbe avere la parola per Poisson prime due colonne e Negative Binomial per le prossime due colonne.
  2. La seconda riga deve avere nomi di colonne come Poisson, Quasi Poisson, Negative Binomial e Zero Inflated Negative Binomial.

Ho trovato questo link ma non riuscivo a capire come ottenere questo. Qualsiasi aiuto sarà molto apprezzato. Grazie

+1

Non penso che questo possa essere fatto usando 'stargazer' o' texreg'. Dovresti modificare la sorgente per produrre l'output desiderato. A meno che non si stia facendo tutto il tempo, probabilmente è molto più semplice modificare l'output manualmente. –

risposta

3

Come Nick Kennedy non credo che stargazer in grado di produrre direttamente l'output desiderato.

Pertanto, qui una soluzione: Salvare la tabella stargazer in un oggetto e aggiungere le linee desiderate manualmente. L'ho codificato qui; con qualche sforzo in più dovrebbe essere possibile centrare automaticamente il testo sopra le rispettive colonne. Si noti che ho un po 'cambiato il tuo stargazer chiamata al fine di nascondere i (sbagliate) nomi dei modelli.

library(pscl) 
library(stargazer) 

data("bioChemists", package = "pscl") 

fm_pois <- glm(art ~ ., data = bioChemists, family = poisson) 
fm_qpois <- glm(art ~ ., data = bioChemists, family = quasipoisson) 
fm_nb <- glm.nb(art ~ ., data = bioChemists) 
fm_zinb <- zeroinfl(art ~ . | 1, data = bioChemists, dist = "negbin") 

byLine <- 
    do.call("c", 
      strsplit(
      capture.output(
       stargazer(fm_pois, fm_qpois, fm_nb, fm_zinb, 
         type = "text", model.names = FALSE) 
      ), 
      "\n")) 

result <- append(
    byLine, 
    c(
    "      Poisson    Negative Binomial", 
    "", 
    "     Poisson QuasiPoisson  NB   ZINB" 
), 
    after = c(4, 5, 6)) 

cat(paste(result, collapse = "\n")) 

# ================================================================== 
#         Dependent variable:    
#     ------------------------------------------------ 
#           art      
#       Poisson    Negative Binomial 
# 
#     Poisson QuasiPoisson  NB   ZINB 
#      (1)  (2)   (3)   (4)  
# ------------------------------------------------------------------ 
# femWomen   -0.225*** -0.225*** -0.216***  -0.216*** 
#     (0.055) (0.074)  (0.073)  (0.073) 
#                 
# marMarried   0.155** 0.155*  0.150*  0.150* 
#     (0.061) (0.083)  (0.082)  (0.082) 
#                 
# kid5    -0.185*** -0.185*** -0.176***  -0.176*** 
#     (0.040) (0.054)  (0.053)  (0.053) 
#                 
# phd     0.013  0.013  0.015   0.015 
#     (0.026) (0.036)  (0.036)  (0.036) 
#                 
# ment    0.026*** 0.026***  0.029***  0.029*** 
#     (0.002) (0.003)  (0.003)  (0.003) 
#                 
# Constant   0.305*** 0.305**  0.256*  0.256* 
#     (0.103) (0.139)  (0.137)  (0.139) 
#                 
# ------------------------------------------------------------------ 
# Observations   915  915   915   915  
# Log Likelihood -1,651.056    -1,561.958 -1,560.959 
# theta         2.264*** (0.271)   
# Akaike Inf. Crit. 3,314.113    3,135.917    
# ================================================================== 
# Note:         *p<0.1; **p<0.05; ***p<0.01 
Problemi correlati