我希望能够根据从字符串构造的公式,对mids
返回的mice()
对象运行回归。对于普通的回归(没有插补),这很容易:
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))
工作得很好,但要求我硬编码列名而不是提供字符串变量。
有办法做到这一点吗?
答案 0 :(得分:1)
通常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])
范围内,因此请将其转换为公式:
{{1}}
注意:您可能希望将此报告给鼠标软件包维护者。