R语言 奇怪的NA


> 1+NA
[1] NA
> NA==1
[1] NA
> c(NA,1:50)
 [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 27 28 29 30
[32] 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50
> mean(c(NA,1:50))
[1] NA
> mean(c(NA,1:50),na.rm = T)
[1] 25.5
> z<-c(1:3,NA);z
[1]  1  2  3 NA
> ind<-is.na(z);ind
[1] FALSE FALSE FALSE  TRUE
> z[is.na(z)]<-0;z
[1] 1 2 3 0
> x<-c(0/1,0/0,1/0,NA)
> x
[1]   0 NaN Inf  NA
> is.nan(x)  # 检测数据是否不确定
[1] FALSE  TRUE FALSE FALSE
> is.finite(x) #检测数据是否有限
[1]  TRUE FALSE FALSE FALSE
> is.infinite(x)  #检测数据是否无穷
[1] FALSE FALSE  TRUE FALSE
> #缺失数据并不是不确定的数据
# 注意第一列
> tb<-data.frame(id=1:4,bio=seq(2,9,by=2))
> tb
  id bio
1  1   2
2  2   4
3  3   6
4  4   8
> tb$bio[tb$id==3]<-NA
> tb
  id bio
1  1   2
2  2   4
3  3  NA
4  4   8
> tb1<-tb[tb$bio!="NA",]
> tb1
   id bio
1   1   2
2   2   4
NA NA  NA
4   4   8
> tb2<-tb[is.na(tb$bio),]
> tb2
  id bio
3  3  NA
> tb3<-tb[!is.na(tb$bio),]
> tb3
  id bio
1  1   2
2  2   4
4  4   8
> is.na(tb$bio)
[1] FALSE FALSE  TRUE FALSE
> data.frame(tb3)
  id bio
1  1   2
2  2   4
4  4   8
> str(tb3)
'data.frame':	3 obs. of  2 variables:
 $ id : int  1 2 4
 $ bio: num  2 4 8
posted @ 2016-04-21 01:38  li_volleyball  阅读(335)  评论(0编辑  收藏  举报