7

我从一个线性回归模型中得到了结果,它在 R 中有一个因子变量,我想把它弄好,然后输出到 LaTeX 中。理想情况下,因子变量将通过给出变量名称和参考类别但其他空白的行在表格中呈现,然后在下方带有缩进文本的行给出因子水平以及相应的估计值。

我长期以来一直使用该stargazer软件包将 R 的回归结果转换为 LaTeX,但看不到用它实现我想要的结果的方法。一个例子:

library(ggplot2)
library(stargazer)

levels(diamonds$cut)

options(contrasts = c("contr.treatment", "contr.treatment"))
model1 <- lm(price~cut,data=diamonds)
stargazer(model1,type='text')

这会产生默认输出:

===============================================
                        Dependent variable:    
                    ---------------------------
                               price           
-----------------------------------------------
cutGood                     -429.893***        
                             (113.849)         

cutVery Good                -376.998***        
                             (105.164)         

cutPremium                   225.500**         
                             (104.395)         

cutIdeal                    -901.216***        
                             (102.412)         

Constant                   4,358.758***        
                             (98.788)          

-----------------------------------------------
Observations                  53,940           
R2                             0.013           
Adjusted R2                    0.013           
Residual Std. Error   3,963.847 (df = 53935)   
F Statistic         175.689*** (df = 4; 53935) 
===============================================
Note:               *p<0.1; **p<0.05; ***p<0.01

这就是我想要的:

===============================================
                        Dependent variable:    
                    ---------------------------
                               price           
-----------------------------------------------

Cut (Reference: Fair)

   Good                     -429.893***        
                             (113.849)         

   Very Good                -376.998***        
                             (105.164)         

   Premium                   225.500**         
                             (104.395)         

   Ideal                    -901.216***        
                             (102.412)         

Constant                   4,358.758***        
                             (98.788)          

-----------------------------------------------
Observations                  53,940           
R2                             0.013           
Adjusted R2                    0.013           
Residual Std. Error   3,963.847 (df = 53935)   
F Statistic         175.689*** (df = 4; 53935) 
===============================================
Note:               *p<0.1; **p<0.05; ***p<0.01

stargazer有没有什么方法可以在没有太多黑客的情况下实现这一目标?是否有其他软件包可以更简单地执行此操作?

4

2 回答 2

2

不完全是您想要的,但您可以通过 covariate.labels 参数手动指定协变量标签。不过,我无法找到如何添加标题,需要您手动添加换行符。

stargazer(model1,type='text',
          covariate.labels=c("Cut (Reference: Fair) Good",
                             ".  Very good",
                             ".  Premium",
                             ".  Ideal"))


======================================================
                               Dependent variable:    
                           ---------------------------
                                      price           
------------------------------------------------------
Cut (Reference: Fair) Good         -429.893***        
                                    (113.849)         

. Very good                        -376.998***        
                                    (105.164)         

. Premium                           225.500**         
                                    (104.395)         

. Ideal                            -901.216***        
                                    (102.412)         

Constant                          4,358.758***        
                                    (98.788)          

------------------------------------------------------
Observations                         53,940           
R2                                    0.013           
Adjusted R2                           0.013           
Residual Std. Error          3,963.847 (df = 53935)   
F Statistic                175.689*** (df = 4; 53935) 
======================================================
Note:                      *p<0.1; **p<0.05; ***p<0.01
于 2014-04-06T11:42:02.233 回答
2

这给出了相当接近于 ASCII 输出的期望值。在 Latex 中是否成功将需要您对其进行测试。那里的处理\n可能没有相同的副作用。

stargazer(model1,type='text', column.labels="\nCut (Reference: Fair)",
          covariate.labels=c(".  Good",
                             ".  Very good",
                             ".  Premium",
                             ".  Ideal"))

安慰:

=================================================
                          Dependent variable:    
                      ---------------------------
                                 price           
Cut (Reference: Fair) 
-------------------------------------------------
. Good                        -429.893***        
                               (113.849)         

. Very good                   -376.998***        
                               (105.164)         

. Premium                      225.500**         
                               (104.395)         

. Ideal                       -901.216***        
                               (102.412)         

Constant                     4,358.758***        
                               (98.788)          

-------------------------------------------------
Observations                    53,940           
R2                               0.013           
Adjusted R2                      0.013           
Residual Std. Error     3,963.847 (df = 53935)   
F Statistic           175.689*** (df = 4; 53935) 
=================================================
Note:                 *p<0.1; **p<0.05; ***p<0.01
于 2014-08-19T21:21:08.777 回答