Search code examples
rlistglmsummary

How to unlist glm summaries into date frames


Let's consider list of summaries:

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))) 

What I want to end up with is identical list containing those summaries but each in data frame format.

To convert summary.glm into data frame we just need to use:

summary_list[[1]]$coefficients

So my idea was to use:

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

But it gives only NULLs. Do you know how it can be done ?


Solution

  • You can use an anonymous function :

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

    Or using [[ is similar to $.

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

    If you want everything on one dataframe use do.call(rbind, result).