r- l -lapply估算许多因变量,然后用星象制成表格



我正在尝试:(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和粘贴,最终会更改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) 

有什么办法可以解决此问题?谢谢。

如果在运行回归之前创建公式,则应起作用。我只是分开了公式的创建和回归。

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)

相关内容

  • 没有找到相关文章

最新更新