模拟产生学生名单,记录高数,英语,网站开发三科成绩,然后进行统计分析

  假设有100名学生,起始学号为161304000,各科成绩取整

  高数成绩为均匀分布随机函数,都在75分以上

  英语成绩为正态分布,平均成绩80

  网站开发成绩为正态分布,平均成绩83,标准差18,

  正态分布中超过100分的成绩变成100分
  

生成学号、三科成绩

生成学号

num<-seq(,)

生成高数成绩

  高数成绩为均匀分布随机数,都在 75 分以上

  均匀分布函数:runif(n,min=0,max=1) 其中,n 为产生随机值个数(长度),min 为最小值,max 为最大值。

x1<-round(runif(,min=,max=))

生成英语成绩

  英语成绩为正态分布,平均成绩 80,标准差为 7

  正态分布函数:rnorm(n, mean=0,sd= 1) 其中,n 为产生随机值个数(长度) ,mean 是平均数, sd 是标准差

 x2<-round(rnorm(,mean=,sd=))

生成网站开发成绩

  网站开发成绩为正态分布,平均成绩 83,标准差为 18。 其中大于 100 的都记为 100

x3<-round(rnorm(,mean=,sd=))
x3[which(x3>)]=

R_Studio模拟学生成绩对数据简单分析-LMLPHP

讲数据写入文本框

生成文本文件

x<-data.frame(num,x1,x2,x3)

打开数据框

de(x)

R_Studio模拟学生成绩对数据简单分析-LMLPHP

平均分

apply(x,,mean)
x4<-apply(x[c("x1","x2","x3")],,mean)
x$x4<round(x4)
x4

总分

apply(x,,sum)
x5<-apply(x[c("x1","x2","x3")],,sum)
x$x5<round(x5)
x5

最低分

apply(x,,min)
x6<-apply(x[c("x1","x2","x3")],,min)
x$x6<round(x6)
x5

最高分

apply(x,,max)
x7<-apply(x[c("x1","x2","x3")],,max)
x$x7<round(x7)
x7

在数据框中命名变量

names(x)<-c("学号","高数","英语","网站开发","平均分","总分","最低分","最高分")

重新写入数据并命名

x<-data.frame(num,x1,x2,x3,x4,x5,x6,x7)
names(x)<-c("学号","高数","英语","网站开发","平均分","总分","最低分","最高分")

R_Studio模拟学生成绩对数据简单分析-LMLPHP

将生成的数据写入文本

write.table(x,file="scores.txt",col.names=T,row.name=F,sep=" ")
b<-read.table("scores.txt",head=T)

  getwd()  可查找到文件所放置目录

R_Studio模拟学生成绩对数据简单分析-LMLPHP

单例输出

学生总成绩

apply(x[c("高数","英语","网站开发")],,sum)

求成绩最高num

which.max(apply(x[c("高数","英语","网站开发")],,sum))

求成绩最高学号

x$学号[which.max(apply(x[c("高数","英语","网站开发")],,sum))]

R_Studio模拟学生成绩对数据简单分析-LMLPHP

绘图

hist(x[,],main="直方图")

plot(x[,],x[,],pch=,bg="green",main="散点图",xlab="学生学号",ylab="高数成绩")

barplot(x[,],main="网站开发成绩条形图")

pie(:,x[,],main="高数成绩饼状图")

boxplot(x[,],col=c("green","red","blue")) #箱尾图
        
05-28 23:36