R语言分析各班学生成绩

Python053

R语言分析各班学生成绩,第1张

分析来自5各班的5位中学生的成绩情况,数据必须确保已保存在本地,名称为“scores.txt”

scores <- read.table("scores.txt",header=TRUE, row.names="num") #读取数据,并且默认读取的行名称就是已有的“num”中的数据,读取完成后,可以查看数据的前几行使用以下命令:

head(scores) #回车完成读取

summary(scores) #读取数据的概述

summary(scores$math) #可以获取所有的数学成绩,类似的,还可以获取语文、生物等成绩

child<- scores['573',] #预读取学号为“573”这位同学的全部信息

sum(child) #计算该学生的总成绩

aver <- tapply(chem,class,mean) #计算某班的某一科目的平均成绩

plot(aver,type='b',ylim=c(40,50),main="各班化学成绩平均分",xlab="班级",ylab="化学平均分") #其他成绩也是可以的,其中ylim是纵坐标的最大最小值区间。

subjects <- ('chn','math','eng','phy','chem','bio','politics','history','geo') #获取到所有科目的成绩;

sapply(scores[class==4,subjects],mean) #获取四班所有科目的平均成绩

aggregate (scores[subjects],by=list(class),mean) #按照科目对所有科目进行平均分的计算(每个班只有一组数据,所以结果和原始数据的大小是一样的)

hist(eng) #输出英语成绩的直方图

[1]https://www.cnblogs.com/speeding/p/4107768.html R语言学习笔记:分析学生的考试成绩

idΜ五ⅶuq药皈dΜ五ⅶpaエбq药皈aエбaエб84466447312011-09-12 19:08:42n┒唬Ф谩udg猢vcjタ┌twx┄容量指样本数,显然为7 中位数是将样本从小到大排列,处于中间的那个样本(样本数为奇数)或处于中间的那两个样本(样本数为偶数)的均值,这里是0 2 2 2 5 10 14 中间的是第4个数:2 样本均值,总和=35,再除以样本数7,结果为5 样本方差按以下公式计算:1/(n-1)Σ(xi-x0)^2 其中x0表示样本均值 1/6*[5^2+3^2*3+0+5^2+9^2]=158/6=26.33

首先,原始数据是由name(名字),class(班级),course(课程)和score(分数)组成的,将其导入R语言并存储在Mydata对象里

接下来,我们利用sqldf包来处理分组汇总的问题。

由于sqldf包不是R语言自带的,所以先用以下代码安装sqldf包:

install.packages("sqldf")

然后选择“China(Beijing)”镜像站点进行安装,R语言会同时自动安装“sqldf”包的依赖包。

安装好sqldf包及其依赖包后,输入以下代码加载sqldf包:

library(sqldf)

一切准备就绪,接下来用sqldf统计每个同学的总成绩和平均分:

sqldf("select name,sum(score) as score_sum,avg(score) as score_avg from Mydata group by name")

统计每个班级的总成绩:

sqldf("select class,sum(score) as score_sum from Mydata group by class")

统计每个班级的每门课程的总成绩和平均分:

sqldf("select class,course,sum(score) as score_sum,avg(score) as score_avg from Mydata group by class,course")