nofunsally nofunsally - 1 year ago 160
R Question

Extracting p-value from lapply list of glm fits

I am using lapply to perform several glm regressions on one dependent variable by one independent variable at a time. Right now I am specifically interested in the

of each independent variable. However, I am unsure on how to report just
using the list from lapply.

If I was just running one model at a time:


Would work (as described here), but trying something similar with
does not seem to work. Can I get just the p-values using
with an accessor method or from directly calling from the models?

#mtcars dataset
vars <- names(mtcars)[2:8]
fits <- lapply(vars, function(x) {glm(substitute(mpg ~ i, list(i =, family=binomial, data = mtcars)})
lapply(fits,summary) # this works
lapply(fits, coefficients) # this works
#lapply(fits, summary(fits)$coefficients[,4])# this for example does not work

Answer Source

You want to do:

lapply(fits, function(f) summary(f)$coefficients[,4])

However, if each item is just a p-value, you would probably rather have a vector than a list, so you could use sapply instead of lapply:

sapply(fits, function(f) summary(f)$coefficients[,4])
Recommended from our users: Dynamic Network Monitoring from WhatsUp Gold from IPSwitch. Free Download