【问题标题】:lapply to estimate with many dependent variables then tabulate with Stargazerlapply 用许多因变量进行估计,然后用 Stargazer 制表
【发布时间】:2017-12-23 18:47:27
【问题描述】:

我正在尝试:(1) 估计多个模型,其中只有因变量发生变化 (2) 使用 Stargazer 包将结果制成表格

以下代码有效,但我必须为每个模型重复一行代码:

    library(stargazer)
    data(mtcars)

    reg1 <- lm(mpg ~ am + gear + carb, data=mtcars)
    reg2 <- lm(cyl ~ am + gear + carb, data=mtcars)
    reg3 <- lm(disp ~ am + gear + carb, data=mtcars)

    stargazer(reg1, reg2, reg3,
              title="Regression Results", type="text", 
              df=FALSE, digits=3)

您可以看到(修剪后的)输出具有因变量(mpg、cyl、disp)的正确标题

Regression Results
==================================================
                         Dependent variable:      
                    ------------------------------
                       mpg       cyl       disp   
                       (1)       (2)       (3)    
--------------------------------------------------
am                   3.545*    -0.176    -40.223  
                     (1.897)   (0.615)   (48.081) 

如果我使用 lapply 和 paste,它最终会改变 stargazer 中因变量的标题:

dependents <- c('mpg', 'cyl', 'disp')
outs <- lapply(dependents, function(x) {
  fit <- lm(paste(x,'~', 'am + gear + carb'), data=mtcars)})

stargazer(outs[[1]], outs[[2]], outs[[3]],
          title="Regression Results", type="text", 
          df=FALSE, digits=3)

给出输出,其中 x 是因变量的标题:

Regression Results
==================================================
                         Dependent variable:      
                    ------------------------------
                                  x               
                       (1)       (2)       (3)    
--------------------------------------------------
am                   3.545*    -0.176    -40.223  
                     (1.897)   (0.615)   (48.081) 

我有什么办法可以解决这个问题吗?谢谢。

【问题讨论】:

    标签: r lapply paste stargazer


    【解决方案1】:

    如果您在运行回归之前创建公式,它应该可以工作。我只是将公式创建和回归分开。

    dependents <- c('mpg', 'cyl', 'disp')
    outs <- lapply(dependents, function(x) {
      formula <- as.formula(paste(x,'~', 'am + gear + carb'))
      fit <- lm(formula, data=mtcars)})
    
    stargazer(outs[[1]], outs[[2]], outs[[3]],
          title="Regression Results", type="text", 
          df=FALSE, digits=3)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-10-03
      • 1970-01-01
      • 2020-01-13
      • 2016-07-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多