2015-04-07 19 views
1

我有一個數據幀,nrow=4312, ncol=105,與我使用mice執行的多個插補:如何在小鼠後重復執行多個因變量的glm?

imp <- mice(data, m=20, maxit=10, method=meth, predictorMatrix=pred2, visitSequence=vis) 

現在,我需要與40個不同的因變量重複且單獨地執行多個邏輯迴歸,並提取特定的值不同的數據幀。一個這樣的迴歸和值提取作爲例子:

fit.HDP <- with(imp, glm(HDP ~ P0 + BMI + WtChange + MATAGE, family=binomial, subset=(P1==1))) 
est.HDP <- pool(fit.HDP) 
HDP <- summary(est.HDP) 

HDP.OR <- exp(HDP[2,1]) 
HDP.95CI <- exp(HDP[2,c(6,7)]) 
HDP.pvalue <- HDP[2,5] 
  1. 我怎樣才能做到這一點不是每個變量在寫這篇出40倍的速度?
  2. 使用for循環可以做到嗎?

謝謝大家的幫助!

+1

查看'?update'。另外看看掃帚套件獲取您的估計和置信區間。 –

+1

做一個循環並使用'update.formula()'在循環的每次迭代中修改因變量。 – Thomas

+0

在你的例子中,什麼是變化的變量(是'P0')? – PoGibas

回答

1

像這樣的東西應該工作:

form <- as.formula("~ P0 + BMI + WtChange + MATAGE") 
listOfGlms<-lapply(vectorOfDependentVariables, function(x) { 
     lm(substitute(update.formula(form, i ~ .), list(i = as.name(x))), family=binomial, subset=(P1==1)) 
     }) 

lapply當然也可以由一個for循環取代。

相關問題