使用 lapply 中的列表将因变量名称分配给 stargazer table

Assign dependent variable names to stargazer table with list from lapply

我 运行 使用 lm 和 lapply 进行了几次回归,以便我得到一个模型列表。从那里我想创建一个观星者 table。我遇到的问题是观星者。我可以毫无问题地创建 table,但我不知道如何包含多个因变量名称。这是一些示例代码:

library(stargazer)
library(magrittr)
x1 <- rnorm(1000,0,1)
x2 <- rnorm(1000,0,1)
x3 <- rnorm(1000,0,1)
x4 <- rnorm(1000,0,1)
x5 <- rnorm(1000,0,1)
x6 <- rnorm(1000,0,1)

data <- cbind(x1, x2, x3, x4, x5, x6) %>%
  as.data.frame()

mod_list_test <- lapply(data[, 1:4], function(x) lm(x ~ data$x5 + data$x6))
dep_vars_test <- c("A", "B", "C", "D")
stargazer(mod_list_test, header = F,
          dep.var.labels = dep_vars_test,
          type = "text")

我认为的问题是,当使用 lapply 调用公式时,它显示为:

Call: lm(formula = x ~ data$x5 + data$x6))

所以 stargazer 似乎认为 dep var 在所有模型中都是 "x"。按照我在上面的代码中所做的那样指定因变量名称,然后仅使用 dep_vars 向量中的名字。

这是此 post 的后续行动,但在该线程中,OP 似乎对完全排除因变量标签感到满意。如果可能的话,我想拥有它们。我尝试了他们在公式文本中粘贴的解决方案,但结果相同。

如有任何帮助,我们将不胜感激。

我建议使用lapply如下:

mod_list_test <- lapply(data[, 1:4], function(x) {
     df <- data.frame(y = x, x5=data$x5, x6=data$x6)
     lm(y ~ x5 + x6, data=df)
 })

或:

mod_list_test <- lapply(1:4, function(k) {
     frm <- as.formula(paste(names(data)[k],"~ x5+x6"))
     lm(frm, data=data)
 })

stargazer(mod_list_test, header = F, type = "text")

输出为:

=================================================================
                                      Dependent variable:        
                               ----------------------------------
                                 x1      x2       x3       x4    
                                 (1)     (2)     (3)       (4)   
-----------------------------------------------------------------
x5                             -0.041   0.011  -0.077**  -0.002  
                               (0.033) (0.033) (0.033)   (0.033) 

x6                             -0.021   0.027   0.027   -0.095***
                               (0.033) (0.034) (0.033)   (0.033) 

Constant                       -0.013  -0.016   0.014     0.016  
                               (0.033) (0.033) (0.033)   (0.033) 

-----------------------------------------------------------------
Observations                    1,000   1,000   1,000     1,000  
R2                              0.002   0.001   0.006     0.008  
Adjusted R2                    -0.0001 -0.001   0.004     0.006  
Residual Std. Error (df = 997)  1.035   1.041   1.029     1.036  
F Statistic (df = 2; 997)       0.939   0.377  3.145**   4.016** 
=================================================================
Note:                                 *p<0.1; **p<0.05; ***p<0.01