使用循环使用鼠标推算数据框,并使用列表中的预测矩阵

时间:2018-12-07 15:33:46

标签: r for-loop apply r-mice

我有一个包含许多数据框的全局环境,应该用鼠标library(mice)来估算。为了首先计算预测矩阵,我在其他人的帮助下做了以下操作:

library(mice)
PredMatr= list()
Myls<-ls(sorted=F)[eapply(.GlobalEnv, class)=="data.frame"]
try (for (i in 1:length(Myls))  {
    PredMatr[[i]]=quickpred(get(Myls[i]), mincor=.1)
})

这将创建一个包含所有预测矩阵的非常不错的列表。但是,下一步甚至更加复杂。我想做一些类似的估算。我想像以前一样遍历数据框。但是,现在我希望该操作是一种推算,请参考上一个列表中的预测变量矩阵。我尝试过:

dfimpls= list()
try (for (i in 1:length(Myls))  {
    dfimpls[[i]]=mice(get(Myls[i]), m=5, maxit = 5, method='cart',predictorMatrix=PredMatr[i])
})

但是语法不正确,给我以下错误:

Error : predictorMatrix not a matrix

使用:

dfimpls= list()
try (for (i in 1:length(Myls))  {
    dfimpls[[i]]=mice(get(Myls[i]), m=5, maxit = 5, method='cart',predictorMatrix=as.matrix(PredMatr[i]))
})

我得到:

Error : Missing row/column names in predictorMatrix

0 个答案:

没有答案