R实现数据处理的一个实例

(1)按分数给等级

(2)按姓氏排序

options(digits=2)#限定输出小数点后数字的位数

Students<-c("John Davis","Angela Williams","Bullwinkle Moose","David Jones","Janice Markhammer","Cheryl Cushing","Reuven Ytzrhak","Greg Knox","Joel England","Mary Rayburn")
Students
str(Students)
Math<-c(502,600,412,358,495,512,410,625,573,522)
Math
Science<-c(95,99,80,82,75,85,80,95,89,86)
Science
English<-c(25,22,18,15,20,28,15,30,27,18)
English
roster<-data.frame(Students,Math,Science,English,stringsAsFactors=FALSE)


z<-scale(roster[,2:4])#标准化
z
score<-apply(z,1,mean)?#计算综合得分
score
roster<-cbind(roster,score)
roster
?quantile
y<-quantile(score,c(0.8,0.6,0.4,0.2))
y
roster$grade[score>=y[1]]<-"A"
roster$grade[score<y[1]&score>=y[2]]<-"B"
roster$grade[score<y[2]&score>=y[3]]<-"C"
roster$grade[score<y[3]&score>=y[4]]<-"D"
roster$grade[score<y[4]]<-"E"

roster

name<-strsplit((roster$Students)," ")
lastname<-sapply(name,"[",2)

firstname<-sapply(name,"[",1)


roster<-cbind(firstname,lastname,roster[,-1])
roster<-roster[order(firstname,lastname),]

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值