R 语言实验

本实验使用R语言生成100名学生的模拟成绩数据,并进行了统计分析,包括生成数据、计算成绩指标、绘制多种图表等步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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) 生成学号

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

2) 生成高数成绩

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


3) 生成英语成绩

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


4) 生成网站开发成绩

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

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

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



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

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


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


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

1) 计算每个人的平均分

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


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


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


2) 计算每个人的总分

方法基本同上。


3) 计算每个人的最高分


4) 计算每个人的最低分


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

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


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

1) 绘制各科成绩直方图

a) 高数成绩直方图

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


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


b) 英语成绩直方图
同上。



c) 网站开发成绩直方图



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



b) 英语成绩散点图

同上。



c) 网站开发成绩散点图



3) 绘制各科成绩柱状图

a) 高数成绩柱状图

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



b) 英语成绩柱状图

同上。



c) 网站开发成绩柱状图



4) 绘制各科成绩饼图

a) 高数成绩饼图

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



b) 英语成绩饼图

同上。



c) 网站开发成绩饼图



5) 绘制各科成绩箱尾图

a) 高数成绩箱尾图

b) 英语成绩箱尾图

c) 网站开发成绩箱尾图

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



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

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



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

脸谱图中每个观测单位为一个脸谱,脸上的各个特征对应该观测单位的各个值,比如脸的高度,宽度,脸型,嘴巴厚度,微笑,眼睛的高度等等,这些特征反应观测单位相应值的大小。
脸谱图由 aplpack 包给出的 faces 函数画出,参数 face.type 为脸的类型,值为 1 时为普通的脸谱,值为 2 时是圣诞老人的脸谱。



7. 画茎叶图,QQ 图

1) 茎叶图

a) 高数成绩茎叶图

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


b) 英语成绩茎叶图

同上。


c) 网站开发成绩茎叶图


2) QQ 图

a) 高数成绩 QQ 图

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



b) 英语成绩 QQ 图

同上。



c) 网站开发成绩 QQ 图





评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值