如何将 glm 摘要取消列出到日期框架中

How to unlist glm summaries into date frames

让我们考虑摘要列表:

set.seed(42)
bin_var <- sample(0:1, 125, T)
indep_1 <- rnorm(125)
indep_2 <- rexp(125)
indep_3 <- runif(125)

summary_list <- list(summary(glm(bin_var~indep_1)),
                     summary(glm(bin_var~indep_2)),
                     summary(glm(bin_var~indep_3))) 

我最终想要的是包含这些摘要的相同列表,但每个都采用数据框格式。

要将 summary.glm 转换为数据框,我们只需要使用:

summary_list[[1]]$coefficients

所以我的想法是使用:

lapply(summary_list,"$", "coefficients")

但它只给出 NULL。你知道怎么做吗?

您可以使用匿名函数:

result <- lapply(summary_list,function(x) x$coefficients)

或使用 [[ 类似于 $

result <- lapply(summary_list, `[[`, 'coefficients')

如果你想要一个数据帧上的所有内容,请使用 do.call(rbind, result)

另一种方式如下:

do.call('rbind', 
        lapply(seq_len(length(summary_list)), 
               function(i) coefficients(summary_list[[i]])))

产生:

# Estimate Std. Error    t value     Pr(>|t|)
# (Intercept)  0.56664011 0.04473468 12.6666853 4.779611e-24
# indep_1     -0.01879638 0.04246236 -0.4426597 6.587894e-01
# (Intercept)  0.58719761 0.06862352  8.5567986 3.891567e-14
# indep_2     -0.01719474 0.04668204 -0.3683373 7.132549e-01
# (Intercept)  0.39294331 0.09647586  4.0729705 8.253436e-05
# indep_3      0.34647724 0.17000447  2.0380478 4.368955e-02