1

我希望能够基于从字符串构造的公式对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))

工作得很好,但需要我硬编码列名而不是提供字符串变量。

有没有办法做到这一点?

4

1 回答 1

1

通常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])

注意:您可能希望将此报告给鼠标包维护者。

于 2015-12-22T15:49:38.923 回答