我希望能够基于从字符串构造的公式,对mice()
返回的mids
对象运行回归。对于普通回归(无插补),这很容易:
library(mice)
for (x in c('age','hyp','chl')) {
regx <- lm(data=nhanes2,paste('bmi ~',x))
print(summary(regx)$coefficients)
}
我认为在估算的数据集上做同样的事情应该是这样的:
imp <- mice(nhanes2,printFlag = FALSE)
for (x in c('age','hyp','chl')) {
regx <- with(data=imp,exp=lm(paste('bmi ~',x)))
summary(pool(regx))
}
然而,R告诉我object 'bmi' was not found
。
reg <- with(data=imp,exp=lm(bmi ~ age))
summary(pool(reg))
工作正常,但需要对列名进行硬编码,而不是提供字符串变量。
有办法做到这一点吗?
通常lm
会接受字符串来代替公式,但它似乎不在with.mids
中,因此请自己将其转换为公式:
f <- function(nm) {
s <- paste("bmi", nm, sep = "~")
regx <- with(imp, lm(as.formula(s)))
summary(pool(regx))
}
Map(f, names(nhanes)[-2])
注意:您可能希望向鼠标包维护人员报告此情况。