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 ...
随机推荐
- 喝奶茶最大值(不能喝自己班级的)2019 Multi-University Training Contest 8--hdu杭电第8场(Roundgod and Milk Tea)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=6667 题意: 有 n个班级,每个班级有a个人.b个奶茶,每个班的人不能喝自己的奶茶,只能喝别人班的奶茶 ...
- golang 组装返回json数据,提供api接口
model里 package model type Setting struct { Key string `gorm:"primary_key" json:"key&q ...
- ListVie的用法
1.在布局中放入一个listView <ListView android:id="@+id/list_view" android:layout_width="mat ...
- YOLOv3:Demo needs OpenCV for webcam images
Compiling With CUDA And OpenCV: change the Makefile in the base directory to read: GPU=1 OPENCV=1 ma ...
- 转载:mysql数据库连接自动断开
转自:https://www.cnblogs.com/ay-a/p/10520425.html MySql连接空闲8小时自动断开引起的问题 一.问题描述 最近遇到了一个奇怪的MySql数据库问 ...
- AES加密解密 Java中运用
AES全称 Advanced Encryption Standard, 高级加密算法,更加安全,可取代DES. Aes: package com.blog.d201706.encrypt; impor ...
- 【项目构建工具】 Gradle笔记2
一.Gradle执行流程 1.Gradle的执行流程(生命周期)主要是三个阶段: 初始化阶段:解析整个工程中所有Project,构建所有的Project对应的project对象 配置阶段:解析所有的p ...
- 跑满带宽的一款百度网盘下载工具 : PanDownload
下载地址 : 点击进入 官网上面也有介绍使用.在这里,我再说一下 下载之后,解压,运行,登录, 登录好之后,准备进行设置 重要:下载情况分以下三部分 下载内容 < 300M,选择`打包下载`,只 ...
- 在java中使用solr7.2.0 新旧版本创建SolrClient对比
在Java中使用solr 版本7.2.0 solrj已经更新到了7.2.0,新版本solr获取SolrClient的方式也和之前旧版本有所不同 solr6.5开始不推荐直接使用HttpSolrClie ...
- 从FBV到CBV一(开始)
span::selection, .CodeMirror-line > span > span::selection { background: #d7d4f0; }.CodeMirror ...