zoukankan      html  css  js  c++  java
  • R_Studio(学生成绩)对两个班级学生成绩进行集合,重新计算学生综合测评成绩并对学生按综合测评成绩进行排名

      对成绩表"11_1_1.csv" "11_2_1.csv"进行集成,并重新计算4门课程的平均分为综合测评,增加“排名”属性,并按排名排序

      "11_1_1.csv","11_2_1.csv"是两个不同班级的学生

      

     

    setwd('D:\data')
    
    #读取数据
    dat1=read.csv('./11_1_1.csv',he=T)
    dat2=read.csv('./11_2_1.csv',he=T)
    
    result=rbind(dat1,dat2) #数据集列合并
    
    #计算出各个学科的平均分
    valuation=apply(result[,3:6], 1,mean)
    
    #将各个学生的平均分写入综合成绩
    result[,7]=valuation
    
    #将学生按综合成绩从高到底进行排名
    dat=result[order(result$综合测评,decreasing = TRUE), ]
    
    #添加排名属性
    #计算出学生的人数,使用seq()函数从1开始生成学生学号
    temp=length(dat$学号)
    
    sub=seq(1,temp,1)
    output=data.frame(dat,'排名'=sub)#变量重命名,存入数据
    
    output
    View Code

      集成结果:

      

      apply函数用于处理矩阵类型的数据

       apply函数三个参数

        第一个参数:矩阵对象

        第二个参数:要操作矩阵的维度,1表示对行进行处理,2表示对列进行处理

        第三个参数:处理数据的函数。apply会分别一行或一列处理该矩阵的数据

    valuation=apply(result[,3:6], 1,mean,na.rm=TRUE)

    (当成绩数据中存在缺失值时可使用 na.rm=TRUE)

      seq(from,to,length)函数:

         第一个参数:生成一组数字,从from开始,

            第二个参数:到to结束,

         第三个参数:每两个数间的间隔是length

    sub=seq(1,temp,1)

    (生成一组数字,从1开始,到temp结束,间隔是1)

      sub=seq(1,6,3)

      输出:[1] 1 4

    (如需转载学习,请标明出处)
  • 相关阅读:
    VMware + CentOS 7搭建环境(二)
    VMware + CentOS 7搭建环境(一)
    电脑清理的问题整理
    windows下搭建vue+webpack的开发环境
    git使用指南
    如何使用前端技术设置地理围栏?
    js点击按钮button效果(波效果)
    计算两个日期时间之间的时间差:28小时38分钟
    jQuery实现的全选、反选和获取当前所有选中的值功能
    vue恼人的node_modules目录删除方法
  • 原文地址:https://www.cnblogs.com/1138720556Gary/p/9720437.html
Copyright © 2011-2022 走看看