2016-01-23 32 views
1
dfmiss=data.frame(x=c(1,4,6,NA,7,NA,9,10,4,3), 
     y=c(10,12,NA,NA,14,18,20,15,12,17), 
     z=c(225,198,520,147,NA,130,NA,200,NA,99), 
     v=c(44,51,74,89,45,55,25,36,75,25)) 

我用mi包如下估算這個數據不完整:從MI包返回完整的數據集,而不missingness指標

istall.package("mi") 
library(mi) 
    mdf <- missing_data.frame(dfmiss) # change dataframe to missing_data.frame 
    imp=mi(mdf) 
    complete(imp,1) 
       x   y   z v missing_x missing_y missing_z 
    1 1.000000 10.000000 225.00000 44  FALSE  FALSE  FALSE 
    2 4.000000 12.000000 198.00000 51  FALSE  FALSE  FALSE 
    3 6.000000 -2.631072 520.00000 74  FALSE  TRUE  FALSE 
    4 9.189989 14.760334 147.00000 89  TRUE  TRUE  FALSE 
    5 7.000000 14.000000 188.37644 45  FALSE  FALSE  TRUE 
    6 11.127962 18.000000 130.00000 55  TRUE  FALSE  FALSE 
    7 9.000000 20.000000 92.30703 25  FALSE  FALSE  TRUE 
    8 10.000000 15.000000 200.00000 36  FALSE  FALSE  FALSE 
    9 4.000000 12.000000 184.29575 75  FALSE  FALSE  TRUE 
    10 3.000000 17.000000 99.00000 25  FALSE  FALSE  FALSE 

complete()命令返回完整的數據集,但我想用了返回這個完整的數據集( TRUE/FALSE列)[missing_x,missing_y,missing_z]。

+0

僅有子集'DF [1:4]'其中'df'是7列結果。 – alistaire

+0

@alistaire,謝謝 – zhyan

回答

1

可以只是下降過量列:

> out <- complete(imp,1) 
> out[, !grepl("missing_", names(out))] 
      x  y   z v 
1 1.0000000 10.00000 225.00000 44 
2 4.0000000 12.00000 198.00000 51 
3 6.0000000 -1.34534 520.00000 74 
4 -0.7613754 10.65513 147.00000 89 
5 7.0000000 14.00000 183.87114 45 
6 10.9100600 18.00000 130.00000 55 
7 9.0000000 20.00000 83.41713 25 
8 10.0000000 15.00000 200.00000 36 
9 4.0000000 12.00000 152.67158 75 
10 3.0000000 17.00000 99.00000 25 
+0

托馬斯,非常感謝你真的有幫助 – zhyan

+0

托馬斯,mi' complete(imp,5)'給你所有5個插補數據集合在一起,但我只想要第五個插補數據集,我的意思是每個插補分開。你能幫助我嗎?是否有任何命令在做這個。 – zhyan

相關問題