在R中同时插入多个二进制变量

时间:2014-05-18 20:41:36

标签: r missing-data

我有一个包含多个相关二进制变量(0/1)的数据集。任何人都可以指出我如何根据其他变量中的信息来估算完全随机的缺失值?

下面,我提供一些代码来创建一个只有3个相关二进制变量的简化数据集。

# create correlated random binary (0/1) variables
x1 <- runif(100,0,1)          # N(0,1))
x2 <- x1 * runif(100,0,1)     # N(0,1))
x3 <- x2 * runif(100,0,1)+0.2 # N(0,1))
x1 <- round(x1)
x2 <- round(x2)
x3 <- round(x3)

#introduce random missing (MCAR)
x1[seq(1,100,7)]<-NA
x2[seq(2,100,7)]<-NA
x3[seq(3,100,7)]<-NA

# how can I impute missing values in this dataframe?
df <- as.data.frame(cbind(x1,x2,x3))
cor(df,use="pairwise.complete.obs")

非常感谢,

米莎

1 个答案:

答案 0 :(得分:1)

您可以使用mice包。

> library(mice)
Loading required package: Rcpp
mice 2.21 2014-02-05
> df.imputed <- complete(mice(df))
# mice output deleted
> nrow(df) == sum(complete.cases(df.imputed))
[1] TRUE
> cor(df.imputed)
          x1        x2        x3
x1 1.0000000 0.4645345 0.2914986
x2 0.4645345 1.0000000 0.6787420
x3 0.2914986 0.6787420 1.0000000