8

我正在使用 R 为我正在教的统计课生成如何处理缺失数据的示例。一种方法需要生成“缺失值二进制变量”,包含缺失值的情况为 0,没有缺失值的情况为 1。例如

n  X  Y    Z  
1  4  300  2  
2  8  400  4  
3  10 500  7  
4  18 NA   10  
5  20  50  NA  
6  NA 1000 5  

我想生成一个变量 M,这样

n m  
1 1  
2 1   
3 1  
4 0  
5 0  
6 0  

考虑到 R 处理缺失值的能力,这似乎应该很简单。我发现的最接近的是m <-ifelse(is.na(missguns),0,1),但这所做的只是生成一个新的完整数据矩阵,其中 0 或 1 表示缺失。但是,我只想要一个变量来指示一行是否包含缺失值。

4

1 回答 1

9

complete.cases做你想要的。

complete.cases(x)
## [1]  TRUE  TRUE  TRUE FALSE FALSE FALSE

您可以强制转换为数字或整数:

as.integer(complete.cases(x))
## [1] 1 1 1 0 0 0
于 2013-05-26T22:51:04.070 回答