成绩的处理

#设置小数点后位数
options(digits=2)
name=c("John Davis","Angela Williams","Bullwinkle Moose",
       "David Jones","Janice Markhammer","Cheryl Cushing","Reuven Ytzrhak",
       "Greg Knox","Joel England","Mary Rayburn")
math=c(502,600,412,358,495,512,410,625,573,522)
eng=c(25,22,18,15,20,28,15,30,27,18)
sci=c(95,99,80,82,75,85,80,95,89,86)
scoreData=data.frame(name,math,sci,eng,stringsAsFactors=FALSE)
#成绩的标准化
x=scale(scoreData[,2:4])
#求平均
score=apply(x,1,mean)
scoreData=cbind(scoreData,score)
y=quantile(score,c(0.8,0.6,0.4,0.2))
#评等级
scoreData$grade[score>=y[1]]="A"
scoreData$grade[score<y[1]&score>=y[2]]="B"
scoreData$grade[score<y[2]&score>=y[3]]="C"
scoreData$grade[score<y[3]&score>=y[4]]="D"
scoreData$grade[score<y[4]]="F"
nametemp=strsplit(scoreData$name," ")
lastname=sapply(nametemp,"[",2)
fristname=sapply(nametemp,"[",1)
scoreData=cbind(fristname,lastname,scoreData[-1])
scoreData=scoreData[order(lastname,fristname),]

最终scoreData为:

转载于:https://www.cnblogs.com/sklww/p/3519680.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值