识别缺失值

a、NA:缺失值

b、NaN:不是一个数,代表不可能值

c、Inf,-Inf:分别代表正无穷、负无穷

                      is.na()、is.nan()和is.infinite()函数返回值实例

Xis.na(X)is.nan(X)is.infinite(X)表示无穷值
X <- NA TRUEFALSEFLASE
X <- 0/0TRUETRUEFLASE
X <- 1/0FLASEFLASETRUE

 

> y <- c(1,2,3,NA)
> is.na(y)
[1] FALSE FALSE FALSE  TRUE
> data(sleep,package='VIM')      #加载数据
> sleep[complete.cases(sleep),]  #列出没有缺失值的行
    BodyWgt BrainWgt NonD Dream Sleep  Span  Gest Pred Exp Danger
2     1.000     6.60  6.3   2.0   8.3   4.5  42.0    3   1      3
5  2547.000  4603.00  2.1   1.8   3.9  69.0 624.0    3   5      4
6    10.550   179.50  9.1   0.7   9.8  27.0 180.0    4   4      4
#太长,删除过多输出
        
> sleep[!complete.cases(sleep),] #列出一个或者多个缺失值的行
    BodyWgt BrainWgt NonD Dream Sleep Span Gest Pred Exp Danger
1  6654.000   5712.0   NA    NA   3.3 38.6  645    3   5      3
3     3.385     44.5   NA    NA  12.5 14.0   60    1   1      1
4     0.920      5.7   NA    NA  16.5   NA   25    5   2      3
#太长,删除过多输出

> sum(is.na(sleep$Dream))  #计算缺失值个数
[1] 12
> mean(is.na(sleep$Dream)) #19%的实例在此变量上有缺失值
[1] 0.1935484
> mean(!complete.cases(sleep)) #数据集中32%的实例包含一个或者多个缺失值
[1] 0.3225806

 

注意

a、complete.cases() 函数仅将 NA 和 NaN 识别为缺失值,无穷值( Inf 和 -Inf )被当作有效值

b、必须使用与本章中类似的缺失值函数来识别 R 数据对象中的缺失值,像 myvar == NA 这样的逻辑比较无法实现

 

 

 

转载于:https://my.oschina.net/u/1785519/blog/1565291

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值