初识R语言—缺失值处理和转换函数

2020-04-02  本文已影响0人  超级无敌大蜗牛

from 阿雷边学边教

缺失值NA(Not Available)

> ID <- paste("A","00",1:5,sep = "")
> age <- c(24,NA,35,19,-20)
> df1<-data.frame(ID,age)
> df1
    ID age
1 A001  24
2 A002  NA
3 A003  35
4 A004  19
5 A005 -20

#判断有无缺失值
> is.na(df1)
        ID   age
[1,] FALSE FALSE
[2,] FALSE  TRUE
[3,] FALSE FALSE
[4,] FALSE FALSE
[5,] FALSE FALSE

#将不符合常理的值定义为缺失值
> df1$age[df1$age<0]<-NA
> df1
    ID age
1 A001  24
2 A002  NA
3 A003  35
4 A004  19
5 A005  NA

#替换掉缺失值
> df1[is.na(df1)] <- mean(df1$age)
> df1
    ID age
1 A001  24
2 A002  NA
3 A003  35
4 A004  19
5 A005  NA
##替换失败是因为在求平均值的时候是以原来所有age为基数的,而实际上这些数字里面有缺失值NA,所以mean值替换失败,如果需要达到将NA值替换为mean值的目的,则需要将NA删除,代码如下:
> df1[is.na(df1)] <- mean(df1$age,na.rm = T)
> df1
    ID age
1 A001  24
2 A002  26
3 A003  35
4 A004  19
5 A005  26
> df1<-data.frame(ID,age)
> na.omit(df1)
    ID age
1 A001  24
3 A003  35
4 A004  19
5 A005 -20
上一篇 下一篇

猜你喜欢

热点阅读