R语言分析各班学生成绩

Python018

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语言学习笔记:分析学生的考试成绩

R语言-统计学 描述性统计

描述定量数据的数值方法:中心趋势度量 变异的度量 相对位置的度量。

1.中心趋势度量 : 算数平均 中位数 众数

1.1 在R中计算平均数的函数 mean( )常规的mean() 函数用法mean(x, trim = 0, na.rm = FALSE, ...) 参数说明: x 对象名称trim 过滤掉异常值 ,按照距离平均值的远近距离排除,如对象中含有10个数据,排除最高和最低值,trim=0.2na.rm 默认为F 表示是否计入空值实例1: 做一个稍微复杂点的操作,用r做数据透视表并把结果转换为matrix ,对行列求和。(仅娱乐,无实用价值)

demo <- mtcars[1:6,] # 调用R自带函数集,并去前6行

toushi <- aggregate(mtcars[,5:6] ,by = list(cyl = mtcars$cyl),sum) # 数据透视表求和

toushi <- as.matrix(toushi) # 将结果的数据框转化成矩阵

#(toushi <- apply(toushi,c(1,2),sum))

(rowSums(toushi)) # 行求和

(colSums(toushi)) # 列求和

toushi <- rbind(toushi,rowSums(toushi)) #将行求和结果并入最后一行

toushi <- cbind(toushi,colSums(toushi)) #将列求和结果并入最后一列

1.2 中位数和众数

对于偏度极大的数据集,中位数能更好的描述数据分布的中心。

很少用众数作为数据数据趋势的度量,只有当对y出现的相对频率感兴趣时,才会考虑到众数。

R实现中位数 :

median(x, na.rm = FALSE)

R中没有直接插找众数的命令

which.max(table(x))

2.变异的度量 : 极差 方差 标准差

2.1 .极差 = max()- min()

2.2 方差和标准差

对一个有n个测量值的有限总体来说,方差计算公式的分母为n。关于样本方差和总体方差分母的差异原因,可自行百度搜索。

R语言计算方差的函数: var(x,)

w<-c(75.0,64.0,47.4,66.9,62.2,62.2,58.7,63,5,66.6,64.0,57.0,69.0,56.9,50.0,72.0)

var(w)

# 附加指数点:标准差的两个有用法则:经验法则 和 切比雪夫法则,共同说明一个问题,对于任意大于1的正数k,至少有(1-1/k^2)的测试值落在平均值的k个标准值范围内。

3.变异的度量 : 百分位数 Z得分

3.1 .最常见的四分位数(一般从大到小)

quantile(x, probs = seq(0, 1, 0.25), na.rm = FALSE,names = TRUE, type = 7, ...)

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