登录
首页精彩阅读R语言去除缺失数据
R语言去除缺失数据
2017-02-21
收藏

R语言去除缺失数据

数据挖掘过程中,我们接触到的数据并不总是完整的,要么缺失、不结构化,要么严重的就是数据错误,就像生活也并不总是完美的。因为大数据的黑箱操作,那么,当我们拿到一份或者自己获取整理数据的时候,就要考虑数据的完整性。否则,在错误的数据上花费了九牛二虎之力,自己还以为做的很正确。

下面谈谈我在用R数据挖掘过程中用到的去除缺失值的常用方法,这些都是我平时也会经常遇到会犯的错误:

1,比如a<-matrix(c(1,2,3,4,NA,6,7,8,9),nrow=3,ncol=3,byrow=TRUE)

complete.cases(a)

[1]  TRUE FALSE  TRUE

而a[complete.case(a),]则会返回去除缺失值所在行的新矩阵

[,1] [,2] [,3]

[1,]    1    2    3

[2,]    7    8    9

也可以用

na.omit(a),得到

[,1] [,2] [,3]

[1,]    1    2    3

[2,]    7    8    9

attr(,"na.action")

[1] 2

attr(,"class")

[1] "omit"


2,如果有另外一个向量b<-matrix(c(1,2,NA),nrow = 3,ncol = 1,byrow = TRUE)

b

[,1]

[1,]    1

[2,]    2

[3,]   NA

complete.cases(a,b)

[1]  TRUE FALSE FALSE   返回的是去除a,b的缺失值后的行,比如a是第二行缺失,b是第三行缺失,则a,b

只剩下一行;此时

a[complete.cases(a,b),]    得到

[1] 1 2 3

b[complete.cases(a,b),]   得到

[1] 1


3,用na.omit()则又是另外的结果了

na.omit(a,b)

[,1] [,2] [,3]

[1,]    1    2    3

[2,]    7    8    9

attr(,"na.action")

[1] 2

attr(,"class")

[1] "omit"

na.omit(b,a)

[,1]

[1,]    1

[2,]    2

attr(,"na.action")

[1] 3

attr(,"class")

[1] "omit"

显然na.omit()只是会对前面的进行去除缺失,na.omit(a,b)与na,omit(a)作用一样,同样na.omit(b,a)与na.omit(b),作用一样。

na.omit(b)数据分析培训

[,1]

[1,]    1

[2,]    2

attr(,"na.action")

[1] 3

attr(,"class")

[1] "omit"


数据分析咨询请扫描二维码

客服在线
立即咨询