Day 8 缺失数据

为何会出现缺失数据?
  1. 机器断电,设备故障导致某个测量值发生了丢失。
  2. 测量根本没有发生,e.g.在做问卷调查时,有些问题没有回答,或者某些问题是无效的回答等。
缺失值NA——Not Available 存储缺失数据

≠0,不知道是多少值,可能是任何值(参考上一节cut()函数配图)

> NA==0
[1] NA
> NA+1
[1] NA
************************************NA:无法计算的存在值√
> a <- c(NA,1:49)
> a
 [1] NA  1  2  3  4  5  6  7  8  9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
[28] 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49
> sum(a)
[1] NA
> mean(a)
[1] NA
  • NA.RM=TRUE 除去NA值进行计算(反之/默认——如上图:NA.RM=FALSE)–remove
> sum(a,na.rm=TRUE)
[1] 1225
> mean(a,na.rm=T)
[1] 25
--------------
> mean(1:49)        ***经验证得,NA.RM将NA值直接剔除,即个数减少 计算
[1] 25
> mean(1:50)
[1] 25.5
  • IS.NA() 逻辑验证是否为NA 值,是则返回TRUE,不是则返回FALSE
> a
 [1] NA  1  2  3  4  5  6  7  8  9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
[28] 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49
> is.na(a)
 [1]  TRUE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
[14] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
[27] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
[40] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE

R包的下载:在R 中下载——install.packages( )在这里插入图片描述

> colSums(sleep)         **列之和**
 BodyWgt BrainWgt     NonD    Dream    Sleep     Span     Gest     Pred      Exp 
12324.98 17554.32       NA       NA       NA       NA       NA   178.00   150.00 
  Danger 
  162.00 
> rowSums(sleep)         **行之和**
 [1]       NA   77.700       NA       NA 7862.800  428.650   96.723  776.800  152.900
[10]  794.560  163.825 1221.800       NA       NA   66.575  129.200   79.685  163.000
[19]       NA       NA       NA  333.260   55.820       NA  778.400       NA   77.701
[28]  110.540 1578.800       NA       NA   53.445  117.060 1768.000       NA       NA
[37]   57.023   65.978   67.800  179.600       NA  207.980  349.000   75.420  542.800
[46]   95.400       NA   61.280  139.035  405.000  264.250  274.400       NA  424.100
[55]       NA       NA   99.600  239.600   89.504  327.790   67.200       NA
  • NA.OMIT( ) 除去NA值
> c <- c(NA,1:20)
> d <- na.omit(c)
> d
 [1]  1  2  3  4  5  6  7  8  9 10 11 12 13 14 15 16 17 18 19 20
attr(,"na.action")
[1] 1
attr(,"class")
[1] "omit"
> is.na(d)
 [1] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
[14] FALSE FALSE FALSE FALSE FALSE FALSE FALSE
> sum(d)
[1] 210

对数据集——删除包含NA值的行→可能对结果产生较大影响

> length(rownames(sleep))                         **计算行数length(rownames/colnames)
[1] 62
> length(rownames(na.omit(sleep)))
[1] 42

其他缺失数据

  1. NaN 表示不可能的值
  2. lnf 无穷(正无穷lnf和负无穷lnf)
> 1/0
[1] Inf
> -1/0
[1] -Inf
> 0/0
[1] NaN
缺失数据之间的差别
  1. NA 是存在的值,但是不知道是多少
  2. NaN 是不存在的
  3. lnf存在,是无穷大/小,但是表示不可能的值
> is.nan(0/0)
[1] TRUE
> is.infinite(1/0)
[1] TRUE
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值