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 ...
随机推荐
- Windows 系统安装 Docker
详细方法参见官方文档. Win10 家庭版 安装Toolbox Win10 家庭版由于功能限制,不能直接安装 Docker for Windows, 需要使用 Toolbox 的形式进行安装. 确认版 ...
- 使用history.js解决浏览器对history使用的兼容问题
history.js即可以解决禁止浏览器回退的浏览器兼容问题,也能解决直接修改浏览器当前标签页url的浏览器兼容问题. 解决禁止浏览器回退: <script src="../../js ...
- Ruby初见
一. 简介 Ruby,一种简单快捷的面向对象(面向对象程序设计)脚本语言,在20世纪90年代由日本人松本行弘(Yukihiro Matsumoto)开发,遵守GPL协议和Ruby License. 二 ...
- js里生成guid
function guid() { return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function (c) { | , ...
- 预约系统(四) 管理页面框架搭建easyUI
Manage控制器用于管理页面 Index视图为管理页面首页,采用easyUi的后台管理框架 Html头部调用,jquery库,easyui库,easyui.css,icon.css,语言包 < ...
- 异常-throw的概述以及和throws的区别
package cn.itcast_06; /* * throw:如果出现了异常情况,我们可以把该异常抛出,这个时候的抛出的应该是异常的对象. * * throws和throw的区别(面试题) thr ...
- 18、nginx优化
一.性能优化概述 基询imm能优化,那么在性能优化这一章,我们将分为如下几个方面做介绍 1.首先我们需要了解性能优化要考虑哪些方面. 2.然后我们需要了解性能优化必须要用到的压力测试工具ab. 3.最 ...
- 能ping通某网页,但无法访问网页的处理
cmd----->netsh winsock reset 用以重置Winsock目录,是网络环境初始化,解决一些奇怪的问题
- service与pod关联
当我们创建pod时,仅仅是创建了pod,要为其创建rc(ReplicationController),他才会有固定的副本,然后为其创建service,集群内部才能访问该pod,使用 NodePort ...
- redis3.2 源码安装
wget http://download.redis.io/releases/redis-3.2.3.tar.gz tar -zxvf redis-.tar.gz cd redis make & ...