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]))
(如需转载学习,请标明出处)