R语言中餐饮销量额数据缺失值及异常值检测代码

  • 餐饮销量额数据缺失值及异常值检测代码
# 设置工作空间
# 把“数据及程序”文件夹拷贝到F盘下,再用setwd设置工作空间
setwd("E:\\R_workspace\\R语言数据分析与挖掘实战\\chp3")

# 读入数据
saledata <- read.csv(file = "./data/catering_sale.csv", header = TRUE) 
View(saledata)

# 缺失值检测 并打印结果,由于R把TRUE和FALSE分别当作1、0,
# 可以用sum()和mean()函数来分别获取缺失样本数、缺失比例
# complete.cases的TURE为完整值
# > an=c(1,2,NA,3,4,5,6) 
# > complete.cases(an)
# [1]  TRUE  TRUE FALSE  TRUE  TRUE  TRUE  TRUE
# 完整值
sum(complete.cases(saledata))
# 缺失值
sum(!complete.cases(saledata))
# 缺失比例:1/201
mean(!complete.cases(saledata))
# 显示缺失的数据
saledata[!complete.cases(saledata), ]

# 异常值检测箱线图
# 希望将box统一调粗或者调细时,应该用boxwex参数进行调整
sp <- boxplot(saledata$"销量", boxwex = 0.7)
title("销量异常值检测箱线图")
xi <- 1.1
# sd(x):x的标准差;sd(x)=sqrt(var(x))
sd.s <- sd(saledata[complete.cases(saledata), ]$"销量")
mn.s <- mean(saledata[complete.cases(saledata), ]$"销量")
points(xi, mn.s, col = "red", pch = 18)
# arrows 函数用来在一张图表上添加箭头,只需要分别指定起始坐标和终止坐标,就可以添加箭头了,
# 还可以通过一些属性对箭头的形状,大小进行调整
# 基本用法:
# xo, yo 指定起始点的x和y坐标,x1, y1 指定终止点的x和y坐标, 
# arrows(x0 = 1, y0 = 1, x1 = 4, y1 = 4)
arrows(xi, mn.s - sd.s, xi, mn.s + sd.s, code = 3, col = "pink", angle = 75, length = .1)

# text函数用来在一张图表上添加文字,
# 只需要指定对应的x和y坐标,以及需要添加的文字内容就可以了
# text(x = c(3, 3), y = c(3, 5), labels = c("text", "text"), col = c("red", "blue"))
# 代码中text函数的格式为text(x,label,y,col)
# y:控制标识的位置
text(rep(c(1.05, 1.05, 0.95, 0.95), length = length(sp$out)), 
     labels = sp$out[order(sp$out)], sp$out[order(sp$out)] + 
       rep(c(150, -150, 150, -150), length = length(sp$out)), col = "red")

猜你喜欢

转载自blog.csdn.net/mr_muli/article/details/80429777