zoukankan      html  css  js  c++  java
  • R_Studio模拟学生成绩对数据简单分析

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

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

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

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

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

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

    生成学号、三科成绩

    生成学号

    num<-seq(161304001,161304100)

    生成高数成绩

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

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

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

    生成英语成绩

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

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

     x2<-round(rnorm(100,mean=80,sd=7))

    生成网站开发成绩

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

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

    讲数据写入文本框

    生成文本文件 

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

    打开数据框

    de(x)

    平均分

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

    总分

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

    最低分

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

    最高分

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

    在数据框中命名变量

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

    重新写入数据并命名

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

    将生成的数据写入文本

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

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

    单例输出

    学生总成绩

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

    求成绩最高num

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

    求成绩最高学号

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

    绘图

    hist(x[,2],main="直方图")
    
    plot(x[,1],x[,2],pch=23,bg="green",main="散点图",xlab="学生学号",ylab="高数成绩")
    
    barplot(x[,2],main="网站开发成绩条形图")
    
    pie(1:15,x[,2],main="高数成绩饼状图")
    
    boxplot(x[2,4],col=c("green","red","blue")) #箱尾图
            
    (如需转载学习,请标明出处)
  • 相关阅读:
    Nova创建虚拟机的底层代码分析
    Chapter 1 Securing Your Server and Network(12):保护链接server
    c语言实现hashtable,相似C++的map和iOS的NSDictionary
    Android_Training
    Bean Validation 技术规范特性概述
    linux下串口调试工具/串口终端推荐: picocom
    Android:主题(Theme)
    oracle database 12c R1 安装文档
    python版本wifi共享工具
    iOS 6编程Cookbook(影印版)
  • 原文地址:https://www.cnblogs.com/1138720556Gary/p/9622905.html
Copyright © 2011-2022 走看看