R_Studio中对xls文件学生总成绩统计求和

 

 

我们发现这张xls表格是没有学生总分的,在xls文件中计算学生总分嫌麻烦时,可以考虑在R Studio中自定义R Script脚本来解决实际问题(计算每个学生的总成绩)

 

  .xls数据表中的数据(关键信息姓名已进行涂鸦)

  

 

  

 

 

  (读取xls文件方法及出现乱码解决方法  传送门)

 

实现过程

 

  读取.xls文件,先找到要读取的"综合成绩.xls"文件目录

 

  (读取xls文件方法及出现乱码解决方法  传送门) 

 

   dat[i,]表示第i列数据

 

 

  dat[,j]表示第j列数据

 

那么我们可以自己定义一个R Script脚本来实现sum求学生分数总合函数

 

   sum求得总分函数

sum<- function(a){
  result <- c()
  for(i in 1:59){
    sum <- 0
    for(j in 3:10){
      if(!is.na(a[i,j])){
        sum <- sum + as.numeric(levels(a[i,j]))[a[i,j]]
      }
    }
    result <- c(result,sum)
  }
  return(result)
}

 

  

  

  在R_Studio中调用一下

sum(dat)

 

  将得到学生成绩总分加入到data表格中

dat <- data.frame(dat,sum(dat)) 

 

 

  导出文件也很简单

write.xlsx2(dat,"Gary2.xlsx")

 

  Gary2就是我们刚刚导出来数据存放的文件

 

 

 

 

  这时可能还会有小伙伴想绘制每门课程的xx图

  (main=("总成绩直方图") 忘记打了,不过没关系,提示错误还时‘x’必须为数值)

 

  这是因为此时dat[]数据中存在有向量,我们只需要使用as.numeric()方法强转一下就可以了

hist(as.numeric(dat[,2]),main=("总成绩直方图"))

 

 

 

plot(as.numeric(dat[,2]),main=("总成绩散点图"))

 

 

 

 barplot(as.numeric(dat[,2]),main=("总成绩条形图"))

 

 

 

pie(1:10,as.numeric(dat[,2]),main=("总成绩饼状图"))

 

 

 

  再来个qq图

qqnorm(as.numeric(dat[,2]))

 

 

  

posted @ 2018-09-09 09:24  Cynical丶Gary  阅读(1067)  评论(0编辑  收藏  举报