我使用lapply一次一个自变量对一个因变量执行多个glm回归。现在,我对每个自变量的Pr(>|z|)特别感兴趣。但是,我不确定如何使用lapply中的列表来报告Pr(>|z|)。
如果我一次只运行一个模型:coef(summary(fit))[,"Pr(>|z|)"]或summary(fit)$coefficients[,4]可以工作(如here所述),但是用lapply尝试类似的东西似乎不起作用。我可以使用带有访问器方法的lapply和glm或者直接从模型中调用来获得p值吗?
#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发布于 2013-02-06 11:46:49
您想要做的是:
lapply(fits, function(f) summary(f)$coefficients[,4])但是,如果每一项都只是一个p值,那么您可能更愿意使用一个向量,而不是一个列表,因此您可以使用sapply而不是lapply
sapply(fits, function(f) summary(f)$coefficients[,4])发布于 2013-02-06 11:51:41
运行lapply(fits, summary)时,它会创建一个summary.glm对象列表,每个对象都使用print.summary.glm打印
如果你保存这个
summaries <- lapply(fits, summary)然后,您可以遍历并提取系数矩阵
coefmat <- lapply(summaries, '[[', 'coefficients')然后是第四列
lapply(coefmat, '[', , 4)https://stackoverflow.com/questions/14721096
复制相似问题