R语言进行数据预处理

4.R语言进行数据预处理

 

         在实际情况下,数据通常是不完整(缺少属性值或某些感兴趣的属性,或仅包含聚集数据)、含噪声(包含错误或存在偏离期望的离群值)、不一致的,这样的数据必须经过预处理,剔除其中的噪声,回复数据的完整性和一致性后才能使用数据挖掘技术进行分析。

 

         使用mice软件包中的示例数据nhanes2来进行演示。加载mice包前,要先加载lattice,MASS, nnet包:

 

install.packages("lattice")

install.packages("MASS")

install.packages("nnet")

library(lattice)

library(MASS)

library(nnet)

 

install.packages("mice")

library(mice)

data(nhanes2)

 

缺失值处理

判断是否存在缺失值:

> sum(is.na(nhanes2))  #计算nhanes2中缺失值数量

[1] 27

>

>sum(complete.cases(nhanes2))  #计算nhanes2中完整样本的数量

[1] 13

 

> md.pattern(nhanes2)

  age hyp bmi chl  

13  1   1   1  1  0

 1  1   1   0  1  1

 3  1   1   1  0  1

 1  1   0   0  1  2

 7  1   0   0  0  3

    0   8   9  1027

其中1表示没有缺失数据,0表示存在缺失数据。

 

1.      直接删除法

这种方法最为简单有效,但前提是缺失数据的比例较少,且缺失数据是随机出现的,这样删除数据后对分析影响不大。

2.      随机插补法

从整体中随机抽取某个样本代替缺失样本。

> #随机插补法

> sub =which(is.na(nhanes2[,4]) == TRUE)   #返回nhanes2数据集中第4列为NA的行

> dataTR =nhanes2[-sub,]            #将第4列不为NA的数据存数dataTR

> dataTE =nhanes2[sub,]          #将第4列为NA的数据存入dataTE

> dataTE[,4] =sample(dataTR[,4],length(dataTE[,4]),replace=T)   #在非缺失值中简单抽样

> dataTE

    age  bmi  hyp chl

  • 14
    点赞
  • 112
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值