R语言习题.docx
- 文档编号:2181595
- 上传时间:2022-10-27
- 格式:DOCX
- 页数:15
- 大小:263.62KB
R语言习题.docx
《R语言习题.docx》由会员分享,可在线阅读,更多相关《R语言习题.docx(15页珍藏版)》请在冰豆网上搜索。
R语言习题
R语言习题
一组学生参加了数学、科学和英语考试。
为了给所有的学生确定一个单一的成绩衡量指标,需要将这些科目的成绩组合起来。
另外,还想将前20%的学生评定为A,接下来20%的学生评定为B,以此类推。
最后,希望按字母顺序对学生排序。
Excel中的数据表
StuId
StuName
Math
Science
English
1
JohnDavis
502
95
25
2
AngelaWilliams
465
67
12
3
BullJones
621
78
22
4
CherylCushing
575
66
18
5
ReuvenYtzrhak
454
96
15
6
JoelKnox
634
89
30
7
MaryRayburn
576
78
37
8
GregEngland
421
56
12
9
BradTmac
599
68
22
10
TracyMcgrady
666
100
38
1:
输入数据——R语言导入xlsx
>install.packages("xlsx")
>library(xlsx)
>workbook<-"D:
/R/StuScore.xlsx"
MathScienceEnglish
84.715.19.5
3:
通过函数mean()来计算各行的均值以及获得综合得分,并使用cbind()将其添加到花名册中
>#3在afterscale中计算标准差均值,并将其添加到StuScore
>score<-apply(afterscale,1,mean)#1表示行,mean表示均值函数
>StuScore<-cbind(StuScore,score)
>StuScore
StuIdStuNameMathScienceEnglishscore
11JohnDavis50295250.22
22AngelaWilliams4656712-1.00
33BullJones62178220.21
44CherylCushing5756618-0.38
55ReuvenYtzrhak4549615-0.30
66JoelKnox63489300.78
77MaryRayburn57678370.56
88GregEngland4215612-1.42
99BradTmac5996822-0.10
1010TracyMcgrady666100381.43
4:
函数quantile()给出学生综合得分的百分位数
quantile(x,probs):
求分位数,其中x为待求分位数的数值型向量,probs为一个由[0,1]之间的概率值组成的数值向量
>afterquantile<-quantile(score,c(.8,.6,.4,.2))
>afterquantile
80%60%40%20%
0.600.21-0.18-0.50
5:
使用逻辑运算符,把score转为等级(离散型)
>StuScore$grade[score>=afterquantile[1]]<-"A"
>StuScore$grade[score
>StuScore$grade[score
>StuScore$grade[score
>StuScore$grade[score >StuScore StuIdStuNameMathScienceEnglishscoregrade 11JohnDavis50295250.22B 22AngelaWilliams4656712-1.00E 33BullJones62178220.21B 44CherylCushing5756618-0.38E 55ReuvenYtzrhak4549615-0.30E 66JoelKnox63489300.78B 77MaryRayburn57678370.56B 88GregEngland4215612-1.42E 99BradTmac5996822-0.10E 1010TracyMcgrady666100381.43B 6: 使用strsplit()以空格为界把学生姓名拆分为姓氏和名字 >StuScore$StuName<-as.character(StuScore$StuName) >is.character(StuScore$StuName) [1]TRUE >name<-strsplit(StuScore$StuName,"") >name [[1]] [1]"John""Davis" [[2]] [1]"Angela""Williams" [[3]] [1]"Bull""Jones" [[4]] [1]"Cheryl""Cushing" [[5]] [1]"Reuven""Ytzrhak" [[6]] [1]"Joel""Knox" [[7]] [1]"Mary""Rayburn" [[8]] [1]"Greg""England" [[9]] [1]"Brad""Tmac" [[10]] [1]"Tracy""Mcgrady" 7: 把name分成Firstname和LastName,加入到StuScore中 >FirstName<-sapply(name,"[",1) >LastName<-sapply(name,"[",2) >StuScore<-cbind(FirstName,LastName,StuScore[,-1]) >StuScore FirstNameLastNameLastNameStuNameMathScienceEnglishscoregrade 1JohnDavisDavisJohnDavis50295250.22B 2AngelaWilliamsWilliamsAngelaWilliams4656712-1.00E 3BullJonesJonesBullJones62178220.21B 4CherylCushingCushingCherylCushing5756618-0.38E 5ReuvenYtzrhakYtzrhakReuvenYtzrhak4549615-0.30E 6JoelKnoxKnoxJoelKnox63489300.78B 7MaryRayburnRayburnMaryRayburn57678370.56B 8GregEnglandEnglandGregEngland4215612-1.42E 9BradTmacTmacBradTmac5996822-0.10E 10TracyMcgradyMcgradyTracyMcgrady666100381.43B 8: order排序 >StuScore[order(LastName,FirstName),] FirstNameLastNameLastNameStuNameMathScienceEnglishscoregrade 4CherylCushingCushingCherylCushing5756618-0.38E 1JohnDavisDavisJohnDavis50295250.22B 8GregEnglandEnglandGregEngland4215612-1.42E 3BullJonesJonesBullJones62178220.21B 6JoelKnoxKnoxJoelKnox63489300.78B 10TracyMcgradyMcgradyTracyMcgrady666100381.43B 7MaryRayburnRayburnMaryRayburn57678370.56B 9BradTmacTmacBradTmac5996822-0.10E 2AngelaWilliamsWilliamsAngelaWilliams4656712-1.00E 5ReuvenYtzrhakYtzrhakReuvenYtzrhak4549615-0.30E 9: 为StuScore绘制分组条形图 install.packages("vcd") library(vcd) fill_colors<-c()#不同的等级,不同的颜色显示 for(iin1: length(StuScore$Science)) { if(StuScore$Science[i]==100) { fill_colors<-c(fill_colors,"red") } elseif(StuScore$Science[i]<100&&StuScore$Science[i]>=80) { fill_colors<-c(fill_colors,"yellow") } elseif(StuScore$Science[i]<80&&StuScore$Science[i]>=60) { fill_colors<-c(fill_colors,"blue") }else{ fill_colors<-c(fill_colors,"green") } } barplot(StuScore$Science,#条形图 main="ScienceScore", xlab="Name",ylab="ScienceScore", col=fill_colors, names.arg=(paste(substr(FirstName,1,1),".",LastName)),#设定横坐标名称 border=NA,#条形框不设置边界线 font.main=4, font.lab=3, beside=TRUE) legend(x=8.8,y=100,#左上角点的坐标 cex=.8,#缩放比例 inset=5, c("Excellent","Good","Ordinary","Bad"), pch=c(15,16,17,19),#图例中的符号 col=c("red","yellow","blue","green"), bg="#821122",#背景色 xpd=TRUE,#可以在绘图区之外显示 tex
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 习题
![提示](https://static.bdocx.com/images/bang_tan.gif)