我有一个数据框nrow=4312, ncol=105
,我使用mice
执行了多次插补:
imp <- mice(data, m=20, maxit=10, method=meth, predictorMatrix=pred2, visitSequence=vis)
现在,我需要使用40个不同的因变量重复和分别执行多个逻辑回归,并将特定值提取到不同的数据框中。一个这样的回归和值提取的例子是:
fit.HDP <- with(imp, glm(HDP ~ P0 + BMI + WtChange + MATAGE, family=binomial, subset=(P1==1)))
est.HDP <- pool(fit.HDP)
HDP <- summary(est.HDP)
HDP.OR <- exp(HDP[2,1])
HDP.95CI <- exp(HDP[2,c(6,7)])
HDP.pvalue <- HDP[2,5]
感谢您的帮助!
答案 0 :(得分:1)
这样的事情应该有效:
form <- as.formula("~ P0 + BMI + WtChange + MATAGE")
listOfGlms<-lapply(vectorOfDependentVariables, function(x) {
lm(substitute(update.formula(form, i ~ .), list(i = as.name(x))), family=binomial, subset=(P1==1))
})
lapply
当然也可以用for循环替换。
答案 1 :(得分:0)
您现在可以使用purrr:map使用@Prolix编写正确的答案,这样阅读起来会更加直观,像这样:
library(tidyverse)
independent.variables.formula <- "~ P0 + BMI + WtChange + MATAGE"
dependent.variables <- c("HDP", "DV2", "DV3")
models.list <- map(dependent.variables, function(DV) {
paste(DV, independent.variables.formula) %>%
as.formula %>%
lm(family=binomial, subset=(P1==1))
})