nofunsally - 1 year ago 127

R Question

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

`Pr(>|z|)`

`Pr(>|z|)`

If I was just running one model at a time:

`coef(summary(fit))[,"Pr(>|z|)"]`

or

`summary(fit)$coefficients[,4]`

Would work (as described here), but trying something similar with

`lapply`

`lapply`

`glm`

`#mtcars dataset`

vars <- names(mtcars)[2:8]

fits <- lapply(vars, function(x) {glm(substitute(mpg ~ i, list(i = as.name(x))), 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])
```