实验五作业
一:根据要求完成下列操作。<br>
1:根据上述输出结果创建数据框。<br>
Student&lt;-c('赵晓雪','夏天','王思齐','朱秋阳','曹操','刘备','张飞','关羽','付婉','李天宇')<br>
Math&lt;-c(502,600,412,358,495,512,410,625,573,522)<br>
Science&lt;-c(95,99,80,82,75,85,80,95,89,86)<br>
English&lt;-c(25,22,18,15,20,28,15,30,27,18)<br>
score&lt;-data.frame(Student,Math,Science,English)<br>
score
2:数学是600分制,英语是100分制,科学是30分制,把数学和英语分数转化为百分制。<br>
score$Math&lt;-score$Math/600*100<br>
score$English&lt;-score$English/100*100<br>
score
3:在数据框中添加一列表示3门课程的总成绩。<br>
score$zong&lt;-score$Math+score$Science+score$English<br>
score
4:对数据框添加一列表示总成绩的排名。<br>
score[order(score$zong,decreasing = T),]<br>
score$Rank&lt;-rank(score$zong)<br>
score
5:按照总成绩对学生分为5个等级,将前20%的学生评定为A,接下来20%的学生评定为B,依次类推。并把等级这一列添加到数据框中。<br>
y&lt;-quantile(score$zong,c(.8,.6,.4,.2));y<br>
score$grade[score$zong&gt;=y[1]]&lt;-'A'<br>
score$grade[score$zong&lt;y[1]&amp;score$zong&gt;=y[2]]&lt;-'B'<br>
score$grade[score$zong&lt;y[2]&amp;score$zong&gt;=y[3]]&lt;-'C'<br>
score$grade[score$zong&lt;y[3]&amp;score$zong&gt;=y[4]]&lt;-'D'<br>
score$grade[score$zong&lt;y[4]]&lt;-'E'<br>
score
6:对最新的数据框按照姓氏进行排序。<br>
二:自定义1个函数,使其能计算100个服从正态分布的随机数的均值,方差与和,并能实现分段输出。<br>
mydata&lt;-function(x){<br>
a&lt;-mean(x)<br>
cat('Mean=',a,'\n')<br>
b&lt;-var(x)<br>
cat('Var=',b,'\n')<br>
result&lt;-list(a=a,b=b)<br>
return(result)<br>
}<br>
set.seed(1234)<br>
x&lt;-rnorm(100)<br>
mydata(x)<br><br>
三:模拟石头,剪刀,布的游戏。(请同学们体会程序优化的过程,并思考如何编写高效的程序)<br>
(1)用if,else 语句完成编程操作。<br>
(2)构造1个函数,每次玩游戏是直接调用函数即可。<br>
A&lt;-sample(c('剪刀','石头','布'),1);A#使用随机抽样<br>
B&lt;-sample(c('剪刀','石头','布'),1);B<br>
fun&lt;-function(A,B)#定义函数<br>
{if((A=='石头'&amp;&amp;B=='剪刀')|(A=='剪刀'&amp;&amp;B=='布')|(A=='布'&amp;&amp;B=='石头'))<br>
return("Awin")#直接返回return<br>
else if((B=='石头'&amp;&amp;A=='剪刀')|(B=='剪刀'&amp;&amp;A=='布')|(B=='布'&amp;&amp;A=='石头'))<br>
return('Bwin')<br>
else if((A=='石头'&amp;&amp;B=='石头')|(A=='剪刀'&amp;&amp;B=='剪刀')|(A=='布'&amp;&amp;B=='布'))<br>
return('平手')}<br>
fun(A,B) #调用函数