R语言缺失值

本文详细探讨了R语言中处理缺失值的方法,包括NA、空字符串及NA的区别,并介绍了is.na()和na.omit()函数的使用,最后通过实例展示了如何筛选和处理这些特殊情况。
 1 > ##########################R语言缺失值问题
 2 > ###构造测试矩阵test
 3 > test=data.frame(x1=c("",NA,1,2),x2=c("NA",1,4,""))
 4 > attach(test)
 5 > test
 6     x1 x2
 7 1      NA
 8 2 <NA>  1
 9 3    1  4
10 4    2   
11 > ###这里遇到一个问题,NA,"NA","" 三者之间的区别,以及R中 is.na(),na.omit()这两个函数起的作用
12 > na.omit(test)
13   x1 x2
14 1    NA
15 3  1  4
16 4  2   
17 > is.na(x1)
18 [1] FALSE  TRUE FALSE FALSE
19 > ###从上面两条命令可以看出:na.omit()和is.na()两个函数只识别 NA,即 <NA> 形式
20 > ###下面假设几种数据处理的情形
21 > ###筛选x1不为空的记录,这里的空表示 空字符串以及NA
22 > test[(x1!="")&(!is.na(x1)),]
23   x1 x2
24 3  1  4
25 4  2   
26 > ###筛选x2不为空的记录,这里的空表示空字符串以及NA,注意X2中的为字符"NA"
27 > test[(x2!="")&(!is.na(x2)),]
28     x1 x2
29 1      NA
30 2 <NA>  1
31 3    1  4
32 > ###所以对于集合,如果要删除NA,"","NA" 这三种情形的记录,直接用三个条件进行处理,以免后患
33 > test[(!is.na(x1))&(x1!="")&(x1!="NA"),]
34   x1 x2
35 3  1  4
36 4  2   
37 > ###总结:"NA"和""都属于字符串类型,不被is.na以及na.omit识别,字符串类型就用 操作符 != 来筛选,NA用is.na()来筛选

 

转载于:https://www.cnblogs.com/datacatcher/p/3737968.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值