R: 使用.mids()从中的字符串生成公式



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

注意:您可能希望向鼠标包维护人员报告此情况。

相关内容

  • 没有找到相关文章

最新更新