如何使用R语言解决可恶的脏数据

2020-06-16 00:00:00 数据 变量 异常 缺失 四分
作者:刘顺祥 公众号:每天进步一点点2015 (微信ID:lsxxx2011)
配套教程:手把手教你做文本挖掘 edu.hellobi.com/course/


在数据分析过程中头疼的应该是如何应付脏数据,脏数据的存在将会对后期的建模、挖掘等工作造成严重的错误,所以必须谨慎的处理那些脏数据。

脏数据的存在形式主要有如下几种情况:

1)缺失值

2)异常值

3)数据的不一致性

下面就跟大家侃侃如何处理这些脏数据。

一、缺失值

缺失值,顾名思义就是一种数据的遗漏,根据CRM中常见的缺失值做一个汇总:

1)会员信息缺失,如身份证号、手机号、性别、年龄等

2)消费数据缺失,如消费次数、消费金额、客单价,卡余等

3)产品信息缺失,如批次、价格、折扣、所属类别等

根据实际的业务需求不同,可以对缺失值采用不同的处理办法,如需要给会员推送短信,而某些会员恰好手机号不存在,可以考虑剔除;如性别不知道,可以使用众数替代;如年龄未知,可以考虑用均值替换。当然还有其他处理缺失值的办法,如多重插补法。下面以一个简单的例子,来说明缺失值的处理。

#模拟一批含缺失值的数据集
set.seed(1234)
Tel <- 13812341000:13812341999
Sex <- sample(c('F','M'), size = 1000, replace = T, prob = c(0.4,0.6))
Age <- round(runif(n = 1000, min = 18, max = 60))
Freq <- round(runif(n = 1000, min = 1, max = 368))
Amount <- rnorm(n = 1000, mean = 134, sd = 10)
ATV <- runif(n = 1000, min = 23, max = 138)
df <- data.frame(Tel = Tel, Sex = Sex, Age = Age, Freq = Freq, Amount = Amount, ATV = ATV)

相关文章