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
```
专注数据分析
欢迎转载并注明出处
```