R 语言实验

R 语言实验过程记录

实验环境:Windows 10 Home, RStudio Version 1.0.136.

实验内容:

模拟产生电商专业学生名单(学号区分),记录高数、英语、网站开发三科成绩,然后进行统计分析。假设有的100 名学生,起始学号为210222001,各科成绩取整,高数成绩为均匀分布随机数,都在75分以上。英语成绩为正态分布,平均成绩80,标准差为7。网站开发成绩为正态分布,平均成绩83,标准差为18。把正态分布中超过100分的成绩变成100分。

1. 把上述信息组合成数据框,并写到文本文件中;

2. 计算各种指标:平均分,每个人的总分,最高分,最低分(使用apply 函数);

3. 求总分最高的同学的学号;

4. 绘各科成绩直方图、散点图、柱状图丶饼图丶箱尾图(要求指定颜色和缺口);

5. 画星相图,解释其含义;

6. 画脸谱图,解释其含义,;

7. 画茎叶图、qq图。

实验实现:

1. 把上述信息组合成数据框,并写到文本文件中;

1) 生成学号

由于学号是一组连续的数值型向量,所以使用“:”(冒号)语法,“:”前后分别为起始数值和结束数值。

R 语言实验

2) 生成高数成绩

由于高数成绩为均匀分布,成绩均在75分以上,所以使用 runif(n, min, max) 函数对 AdvMath 进行赋值,参数 n 为数据个数,min 为最小值,max 为最大值。取整函数使用 round(x, 0) 函数进行四舍五入,0代表保留到个位,同时0也为缺省值,不指定时默认该参数为0,下同。

R 语言实验

3) 生成英语成绩

由于英语成绩为正态分布,平均成绩为80,标准差7。使用R中的正态分布函数 rnorm(n, mean, sd),参数n为数据个数,mean 为期望,sd 为标准差。

R 语言实验

4) 生成网站开发成绩

由于网站开发成绩为正态分布,平均成绩83,标准差为18,其中成绩大于100的均计为100。正态分布函数同上,在 WebDev[] 中使用 which 语句筛选 WebDev 中大于100的数据重新赋值为100。

R 语言实验

5) 将上述信息向量组合成数据框

数据框通过 data.frame(col1, col2, …) 创建,参数为组成数据框的各列向量。data.entry(student) 和 edit(student) 分别用来查看和编辑数据框。

R 语言实验

R 语言实验

6) 将数据框保存在文件中

保存数据框使用 write.table(x, filename) 函数,参数x为保存的数据框,filename 为保存的文件名称。

R 语言实验

表示将 student 数据框保存在桌面下的R文件夹下,文件名为 student.txt。

R 语言实验

2. 计算各种指标:平均分,每个人的总分,最高分,最低分(使用 apply 函数)

1) 计算每个人的平均分

apply 函数用来对阵列行或列使用函数,平均函数为 mean,使用

R 语言实验

生成一个包含每个学生平均成绩的数组,student[2:4] 表示计算 student 中第二列到第四列的数据,1表示对行进行操作。使用

R 语言实验

将对平均成绩 avg 保留一位小数并将 Avg 合并到 student 中。

R 语言实验

2) 计算每个人的总分

方法基本同上。

R 语言实验

3) 计算每个人的最高分

R 语言实验

4) 计算每个人的最低分

R 语言实验

3. 求总分最高的同学的学号

求总分最高的同学的学号,应用 which,max 函数。

R 语言实验

4. 绘制各科成绩直方图、散点图、柱状图、饼图、箱尾图(要求指定颜色和缺口)

1) 绘制各科成绩直方图

a) 高数成绩直方图

R 语言中用 hist 函数画直方图:

R 语言实验

第一个参数 student[, 2] 表示用于显示的数据为 student 中第二列的数据,参数 main 为直方图的名称,breaks 为直方图中矩形的数量。

R 语言实验

b) 英语成绩直方图

同上。

R 语言实验

R 语言实验

c) 网站开发成绩直方图

R 语言实验

R 语言实验

2) 绘制各科成绩散点图

a) 高数成绩散点图

散点图由函数 plot 画出,参数 x, y 分别为 x 轴和 y 轴的数据,main 为图的标题,sub 为子标题,xlab 为 x 轴标题,ylab 为 y 轴标题,cex 为点的大小,col 为颜色,pch 为形状,取值为整数 1-25,其中 pch = 1 为空心圆,21 为彩色圆,通过参数 bg 定义颜色。

R 语言实验

R 语言实验

b) 英语成绩散点图

同上。

R 语言实验

R 语言实验

c) 网站开发成绩散点图

R 语言实验

R 语言实验

3) 绘制各科成绩柱状图

a) 高数成绩柱状图

柱状图由 barplot 函数画出,参数 H 为数据,xlab 和 ylab 为 x, y 轴的名称,main 为标题,co l为柱形的颜色。

R 语言实验

R 语言实验

b) 英语成绩柱状图

同上。

R 语言实验

R 语言实验

c) 网站开发成绩柱状图

R 语言实验

R 语言实验

4) 绘制各科成绩饼图

a) 高数成绩饼图

饼形图由 pie 函数画出,x 为数据,labels 为切片的描述,radius 为圆的半径,介于 -1 到 1 ,main 为标题,col 为调色板,clockwise 为逻辑值,表示绘制时的顺时针或逆时针方向。

R 语言实验

R 语言实验

b) 英语成绩饼图

同上。

R 语言实验

R 语言实验

c) 网站开发成绩饼图

R 语言实验

R 语言实验

5) 绘制各科成绩箱尾图

a) 高数成绩箱尾图

b) 英语成绩箱尾图

c) 网站开发成绩箱尾图

箱尾图由 boxplot 函数画出,参数x为数据,main 为标题,data 为数据帧,notch 为逻辑值,TRUE 时画一个缺口,col 为颜色集。

R 语言实验

R 语言实验

5. 画星相图,解释其含义

星相图中每个观测单位为一个图形,圆形或半圆,每个图形被平分为各个值数量的三角形或扇形,每个三角形或扇形半径的大小表达对应值的大小。

星相图由函数 stars 画出,第一个参数为数据集;full 为一个逻辑值,等于 TRUE 时星相图为整个圆,FALSE 时为半个圆,缺省值为 TRUE;radius 为一个逻辑值,等于 TRUE 时在每个变量中间会绘制半径,缺省值为 TRUE;draw.segments = T 表示每个变量的图形为扇形,并且用颜色区分每个变量。

R 语言实验

R 语言实验

6. 画脸谱图,解释其含义

脸谱图中每个观测单位为一个脸谱,脸上的各个特征对应该观测单位的各个值,比如脸的高度,宽度,脸型,嘴巴厚度,微笑,眼睛的高度等等,这些特征反应观测单位相应值的大小。

脸谱图由 aplpack 包给出的 faces 函数画出,参数 face.type 为脸的类型,值为 1 时为普通的脸谱,值为 2 时是圣诞老人的脸谱。

R 语言实验

R 语言实验

7. 画茎叶图,QQ 图

1) 茎叶图

a) 高数成绩茎叶图

茎叶图由 stem 函数画出,参数 scale 控制茎叶图的长度,width 为宽度,atom 为容差。

R 语言实验

b) 英语成绩茎叶图

同上。

R 语言实验

c) 网站开发成绩茎叶图

R 语言实验

2) QQ 图

a) 高数成绩 QQ 图

QQ 图由 qqnorm 函数画出,参数 col 为颜色。

R 语言实验

R 语言实验

b) 英语成绩 QQ 图

同上。

R 语言实验

R 语言实验

c) 网站开发成绩 QQ 图

R 语言实验

R 语言实验

R 语言实验