R:使用with.mids()中的字符串构建公式

时间:2015-12-22 15:18:20

标签: r regression lm r-mice imputation

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

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

有办法做到这一点吗?

1 个答案:

答案 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}}

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