R_Studio中xls数据进行统计求和

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

  .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]))

  

猜你喜欢

转载自www.cnblogs.com/1138720556Gary/p/9612410.html