我们发现这张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()、异常值分析(箱线图)的更多相关文章

  1. R_Studio(学生成绩)对数据进行属性构造处理

    对“Gary.csv”中数据进行进行属性构造处理,增加“总成绩”属性 Gary.csv setwd('D:\\data') list.files() #数据读取 dat=read.csv(file=& ...

  2. R_Studio(学生成绩)对数值型数据进行统计量分析

    对“Gary.csv”中的成绩数据进行统计量分析 基础数据分析 均值 中位数 极差   标准差   变异系数 1/4分位数 3/4分位数 四分位间距... ...分析 setwd('D:\\data' ...

  3. R_Studio(学生成绩)绘制频率分布直方图、分布饼图、折线比较图

    对“Gary.csv”中的成绩数据进行分布分析 (1)按0-59,60-69,70-79,80-89,90-100分组绘制高级语言程序设计成绩的频率分布直方图. (2)按0-59,60-69,70-7 ...

  4. Matlab boxplot for Multiple Groups(多组数据的箱线图)

    在画之前首先介绍一下Matlab boxplot,下面这段说明内容来自http://www.plob.org/2012/06/10/2153.html   由于matlab具有强大的计算功能,用其统计 ...

  5. 第六篇:R语言数据可视化之数据分布图(直方图、密度曲线、箱线图、等高线、2D密度图)

    数据分布图简介 中医上讲看病四诊法为:望闻问切.而数据分析师分析数据的过程也有点相似,我们需要望:看看数据长什么样:闻:仔细分析数据是否合理:问:针对前两步工作搜集到的问题与业务方交流:切:结合业务方 ...

  6. Matplotlib数据可视化(6):饼图与箱线图

    In [1]: from matplotlib import pyplot as plt import numpy as np import matplotlib as mpl mpl.rcParam ...

  7. R_Studio模拟学生成绩对数据简单分析

    模拟产生学生名单,记录高数,英语,网站开发三科成绩,然后进行统计分析 假设有100名学生,起始学号为161304000,各科成绩取整 高数成绩为均匀分布随机函数,都在75分以上 英语成绩为正态分布,平 ...

  8. R_Studio(学生成绩)使用cbind()函数对多个学期成绩进行集成

    “Gary1.csv”.“Gary2.csv”.“Gary3.csv”中保存了一个班级学生三个学期的成绩 对三个学期中的成绩数据进行集成并重新计算综合成绩和排名,并按排名顺序排布(学号9位数11130 ...

  9. Python图表数据可视化Seaborn:2. 分类数据可视化-分类散点图|分布图(箱型图|小提琴图|LV图表)|统计图(柱状图|折线图)

    1. 分类数据可视化 - 分类散点图 stripplot( ) / swarmplot( ) sns.stripplot(x="day",y="total_bill&qu ...

随机推荐

  1. 更换composer镜像源为阿里云

    ​ 说一说我为什么会更换镜像源,今天我准备给公司的项目添加一个 Excel 导出的功能,需要 PhpSpreadsheet 插件来实现我的功能.输入命令发现提示我 Authentication req ...

  2. spark教程(10)-sparkSQL

    sparkSQL 的由来 我们知道最初的计算框架叫 mapreduce,他的缺点是计算速度慢,还有一个就是代码比较麻烦,所以有了 hive: hive 是把类 sql 的语句转换成 mapreduce ...

  3. Dapper多表查询时子表字段为空

    最近在学习使用Dapper时百度了一篇详细使用教程,在做到多表查询的时候,出现如下情况. 使用的SQL如下, SELECT * FROM [Student] AS A INNER JOIN [Juni ...

  4. This application has no explicit mapping for /error, so you are seeing this as a fallback.

    检查url是否输入正确,要加上之前的mapping映射

  5. Java爬取并下载酷狗音乐

    本文方法及代码仅供学习,仅供学习. 案例: 下载酷狗TOP500歌曲,代码用到的代码库包含:Jsoup.HttpClient.fastJson等. 正文: 1.分析是否可以获取到TOP500歌单 打开 ...

  6. feign 多参数问题

    参考: https://stackoverflow.com/questions/43604734/springboot-feignclient-method-has-too-many-paramter ...

  7. 关于sqlmap的两个小坑

    i春秋作家:__LSA__ 0x00 概述 近日在利用sqlmap注入测试时遇到一个奇怪的现象,高版本sqlmap无法检测出注入,但是低版本的可以测出注入,并且能跑出数据不是误报,经过对比测试和查看s ...

  8. php连接阿里云mysql

    1.开启Mysql远程访问端口 现在服务器控制台,安全组那边开启3306端口 2.修改Mysql配置文件 vim /etc/mysql/mysql.conf.d/mysqld.cnf,找到bind-a ...

  9. htpasswd 使用&&在线生成器

    1.简单介绍 htpasswd-管理用于基本身份验证的用户文件. 这个文件可以用来控制nginx或Apache的目录访问控制权限,例如,nginx的在配置nginx_status的态的时候(如下图所示 ...

  10. 网上搜到的特别厉害的visio2019激活方法

    原文链接:https://blog.csdn.net/godot06/article/details/94141854 步骤如下: 1.电脑新建一个记事本文件.txt(任何地方都可以) 2.复制下面代 ...