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

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群