R_Studio(学生成绩)对数据缺失值md.pattern()、异常值分析(箱线图)
我们发现这张Gary.csv表格存在学生成绩不完全的(五十三名学生,三名学生存在成绩不完整、共四个不完整成绩)
79号大学语文、高等数学
96号中国近代史纲要
65号大学体育


(1)NA表示数据集中的该数据遗失、不存在。在针对具有NA的数据集进行函数操作的时候,该NA不会被直接剔除。如x<-c(1,2,3,NA,4),取mean(x),则结果为NA,如果想去除NA的影响,需要显式告知mean方法,如 mean(x,na.rm=T);NA是没有自己的mode的,在vector中,它会“追随”其他数据的类型,比如刚刚的x,mode(x)为numeric,mode(x[4])亦然。
(2) NULL表示未知的状态。它不会在计算之中,如x<-c(1,2,3,NULL,4),取mean(x),结果为2.5。NULL是不算数的,length(c(NULL))为0,而length(c(NA))为1。可见NA“占着”位置,它存在着,而NULL没有“占着”位置,或者说,“不知道”有没有真正的数据。
在R语言中缺失值通常以NA表示,判断是否缺失值的函数是is.na。
另一个常用到的函数是complete.cases,它对数据框进行分析,判断某一观测样本是否完整。
NA与NULL的区别
setwd('D:\\data') #设置工作目录
list.files() #列出工作目录下的文件
dat=read.csv(file="Gary.csv",header=TRUE) #打开Gary.csv文件
is.na(dat) #对数据进行判空,空值返回TRUE
complete.cases(dat) #对数据行进行判空,存在空值的行返回TRUE
sum(complete.cases(dat)) #统计未缺失数
sum(!complete.cases(dat)) #统计缺失数
mean(!complete.cases(dat)) #统计缺失比例
dat[!complete.cases(dat),] #返回存在空值行数据
library(mice)
md.pattern(dat) #针对复杂的数据集值进行处理
#异常值检测箱线图
sp<-boxplot(dat$"大学语文",boxwex=0.7,norch=FALSE)
title("大学语文")
xi=1.1
sd.s=sd(dat[complete.cases(dat),]$"大学语文") #标准差
mn.s=mean(dat[complete.cases(dat),]$"大学语文") #均值
points(xi,mn.s,col="red",pch=18)
arrows(xi, mn.s - sd.s, xi, mn.s + sd.s, code = 3, col = "pink", angle = 75, length = .1)
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")
plot(saledata[,1],saledata[,2])
lines(saledata[,2])
Gary.R
对成绩数据进行缺失值分析,并表述分析过程
处理方法
对数据进行判空,空值返回TRUE
is.na(dat)
对数据行进行判空,存在空值的行返回TRUE
complete.cases(dat)
统计未缺失数
sum(complete.cases(dat))
统计缺失数
sum(!complete.cases(dat))
统计缺失比例
mean(!complete.cases(dat))
返回存在空值行数据
dat[!complete.cases(dat),]
依赖包mice
md.pattern(dat) #针对复杂的数据集值进行处理

md.pattern()
依赖包mice
生成一个以矩阵或数据框形式展示缺失值模式的表格

0表示变量的列中没有缺失,1则表示有缺失值
第一行第一个数据:完整成绩人数
第二个数据至倒数第二个数据:列出全部学生考试科目
最后一个数据:缺少考试科目数量(争对复杂数据,这里象对数据简单)
第二行至倒数第二行:缺少考试成绩学生信息
第二行表示存在一个学生缺少 中国近代史纲要成绩 缺少成绩科目数量为1
第三行表示存在一个学生缺少 大学语文和高等数学 缺少成绩科目数量为2
第四行表示存在一个学生缺少 大学体育 缺少成绩科目数量为1
最后一行:给出了每个科目的缺失值数目(中国近代史纲要成绩、大学语文和高等数学、大学体育)
最后一个数据:缺少科目学生人数(3人)
对成绩数据进行异常值分析,并表述分析过程
箱线图 传送门
箱线图(Boxplot)也称箱须图(Box-whisker Plot),是利用数据中的五个统计量:最小值、第一四分位数、中位数、第三四分位数与最大值来描述数据的一种方法,它也可以粗略地看出数据是否具有有对称性,分布的分散程度等信息,特别可以用于对几个样本的比较。

#异常值检测箱线图
sp<-boxplot(dat$"大学语文",boxwex=0.7,norch=FALSE)
title("大学语文")
xi=1.1
sd.s=sd(dat[complete.cases(dat),]$"大学语文") #标准差
mn.s=mean(dat[complete.cases(dat),]$"大学语文") #均值
points(xi,mn.s,col="red",pch=)
arrows(xi, mn.s - sd.s, xi, mn.s + sd.s, code = , col = "pink", angle = , length = .) 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(,-,,-),length=length(sp$out)),col="red") plot(saledata[,],saledata[,])
lines(saledata[,])

提示错误:Error in text.default(rep(c(1.05, 1.05, 0.95, 0.95), length = length(sp$out)), : 'labels'长度不能设成零
测试科目 大学语文 时尽然无耻的报错了 Σ(= = !)...
sp$out:结果中会自带异常值,就是下面代码中的sp$out,这个是做箱型图,按照上下边界之外为异常值进行判定的
对数据进行规范化目的:规范化目的是使结构更合理,消除存储异常,使数据冗余尽量小,便于插入,删除,和跟新
测试高等数学

成功画出箱线图!!
测试 高级语言程序设计

成功画出箱线图!!
R_Studio(学生成绩)对数据缺失值md.pattern()、异常值分析(箱线图)的更多相关文章
- R_Studio(学生成绩)对数据进行属性构造处理
对“Gary.csv”中数据进行进行属性构造处理,增加“总成绩”属性 Gary.csv setwd('D:\\data') list.files() #数据读取 dat=read.csv(file=& ...
- R_Studio(学生成绩)对数值型数据进行统计量分析
对“Gary.csv”中的成绩数据进行统计量分析 基础数据分析 均值 中位数 极差 标准差 变异系数 1/4分位数 3/4分位数 四分位间距... ...分析 setwd('D:\\data' ...
- R_Studio(学生成绩)绘制频率分布直方图、分布饼图、折线比较图
对“Gary.csv”中的成绩数据进行分布分析 (1)按0-59,60-69,70-79,80-89,90-100分组绘制高级语言程序设计成绩的频率分布直方图. (2)按0-59,60-69,70-7 ...
- Matlab boxplot for Multiple Groups(多组数据的箱线图)
在画之前首先介绍一下Matlab boxplot,下面这段说明内容来自http://www.plob.org/2012/06/10/2153.html 由于matlab具有强大的计算功能,用其统计 ...
- 第六篇:R语言数据可视化之数据分布图(直方图、密度曲线、箱线图、等高线、2D密度图)
数据分布图简介 中医上讲看病四诊法为:望闻问切.而数据分析师分析数据的过程也有点相似,我们需要望:看看数据长什么样:闻:仔细分析数据是否合理:问:针对前两步工作搜集到的问题与业务方交流:切:结合业务方 ...
- Matplotlib数据可视化(6):饼图与箱线图
In [1]: from matplotlib import pyplot as plt import numpy as np import matplotlib as mpl mpl.rcParam ...
- R_Studio模拟学生成绩对数据简单分析
模拟产生学生名单,记录高数,英语,网站开发三科成绩,然后进行统计分析 假设有100名学生,起始学号为161304000,各科成绩取整 高数成绩为均匀分布随机函数,都在75分以上 英语成绩为正态分布,平 ...
- R_Studio(学生成绩)使用cbind()函数对多个学期成绩进行集成
“Gary1.csv”.“Gary2.csv”.“Gary3.csv”中保存了一个班级学生三个学期的成绩 对三个学期中的成绩数据进行集成并重新计算综合成绩和排名,并按排名顺序排布(学号9位数11130 ...
- Python图表数据可视化Seaborn:2. 分类数据可视化-分类散点图|分布图(箱型图|小提琴图|LV图表)|统计图(柱状图|折线图)
1. 分类数据可视化 - 分类散点图 stripplot( ) / swarmplot( ) sns.stripplot(x="day",y="total_bill&qu ...
随机推荐
- python computer info look
计算机信息查看-. import platform import platform def TestPlatform(): print("---------SYSTEM INFO------ ...
- Dango之视图函数
1.request对象 HTTPRequest对象就是咱们的视图函数的参数request def home(request): print(request) #<WSGIRequest: GET ...
- Python接口开发
一.flask flask是一个python编写的轻量级框架,可以使用它实现一个网站.web服务. 用flask开发接口的流程为: 1.定义一个server server=flask.Flask(__ ...
- 分布式锁的几种实现方法:redis实现分布式锁
使用失效的方式实现分布式锁(推荐) import redis.clients.jedis.Jedis; /** * 使用redis实现分布式锁(推荐) * */ public class JedLoc ...
- 在web项目中配置log4j
在web.xml中添加如下代码 <context-param> <param-name>contextConfigLocation</param-name> < ...
- 数据绑定-@RequestParam
@PathVariable,前面已经讲过了 @RequestParam 作用:获取请求中的参数,GET请求,问号后面的请求参数,POST:请求体中的KV数据. 测试:
- O017、部署DevStack
参考https://www.cnblogs.com/CloudMan6/p/5357273.html 本节按照以下步骤部署 DevStack 实验环境,包括控制节点和计算节点.详细的部署和配置可以 ...
- Freemarker生成word文档的时的一些&,>,<报错
替换模板ftl中的内容的时候,一些特殊的字符需要转移,例如: &,<,> value为字符串 value.replace("&","& ...
- Linux安装Redis、PHP安装Redis扩展模块
Redis的官方下载: http://redis.io/download 步骤一:下载安装包 步骤二:编译源程序 步骤三:移动文件.便于管理 步骤四:启动 Redis服务 查看是否启动成功 ...
- hive各种报错
搭建了 CDH6.1.0环境 新加入一台机器都hive但是报错 javax.jdo.JDODataStoreException: Required table missing : "`VER ...