“Gary1.csv”、“Gary2.csv”、“Gary3.csv”中保存了一个班级学生三个学期的成绩
对三个学期中的成绩数据进行集成并重新计算综合成绩和排名,并按排名顺序排布(学号9位数111304001~11304047)
Gary1.csv中数据
Gary2.csv中数据
Gary3.csv中数据
cbind是根据列进行合并 (要求:所有数据行数相等)
rbind是根据行进行合并 (要求:所有数据列数相同)
#打开工作目录文件 setwd('D:\\data') list.files() inputfile1=read.csv(file="Gary1.csv",header=TRUE) inputfile2=read.csv(file="Gary2.csv",header=TRUE) inputfile3=read.csv(file="Gary3.csv",header=TRUE) #删除inputfile1中的综合成绩和排名,删除inputfile2中的学号、姓名、综合成绩和排名 result=cbind(inputfile1[,-c(10,11)],inputfile2[,-c(1,2,12,13)]) #数据集列合并 #同理 result2=cbind(result,inputfile3[,-c(1,2,7,8)]) #对学生成绩进行相加,得到一组数据(我自己测试学生成绩是从第三列到第二十二列的) #相加成绩保存到evaluation中 evaluation=apply(result2[,3:22], 1,mean,na.rm=TRUE) #apply函数一般有三个参数 #第一个参数代表矩阵对象 #第二个参数代表要操作矩阵的维度 1表示对行进行处理,2表示对列进行处理 #第三个参数就是处理数据的函数 #apply会分别一行或一列处理该矩阵的数据。 #将evaluation用“综合测评”添加到resule2中,将结果用result11保存 result11=data.frame(result2,'综合测评'=evaluation) #对result11中按综合测评成绩进行decreasing减少量排名 result22=result11[order(result11$综合测评,decreasing = TRUE), ] result33=data.frame(result22,'测评排名'=order(result22$综合测评,decreasing = TRUE)) result33