在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
要求:模拟产生统计专业同学的名单(学号区分),记录数学,线代,英语三科成绩 > num <- seq(1513032001, 15130320100) #模拟100位同学 > math <- round( runif(100, min = 80, max = 100) ) #round()---产生随机数, runif()--均匀分布在min = 80 到 max = 100之间的数(100个) > linger <- round( rnorm(100, mean = 80 , sd = 7) ) #rnorm()---正态分布在平均分=80, 标准差=7之间的数(100个) > eng <- round( rnorm(100, mean = 83, sd = 18) ) > eng[which(eng > 100)] = 100 #eng会产生大于100的数,将大于100的数全部置为100,which(require)返回元素中满足中间要求的数下标。 # (ps:R中元素下标从 1 开始,不是 0 !!! > scoreframe <- data.frame(num, math, linger, eng) #将 num, math,linger,eng组成数据框,数据框的语法--data.frame(obj1,obj2......); #将数据写到文本文档之中, 在写入文件之前,最好设置一下工作空间,否则,得用 file = "D:/路径.../mark.txt" (显得麻烦,建议打开R的时候,就设置好工作空间, # 还有路径要用 "F:/路径1/路径2/..." or “F:\\路径1\\路径2....”, 不能使用 "F:\路径1\路径2" ). > write.table(scoreframe, file = "mark.txt", col.names = F, rol.names = F, seq = " ") #各科平均----------只求成绩平均,学号就不用求了~ > colMean(scoreframe[ c("math", "linger", "eng") ] > apply(scoreframe, 2, mean) #对数据框x 在行(1), 列(2)方向作指定操作---本处是apply(scoreframe, 2(代表列), mean(求平均操作) ) > apply(scoreframe, 2, max) #求各科最高最低 > apply(scoreframe, 2, min) > apply(scoreframe[ c("math", "linger", "eng") , 1, sum ] #求个人的总分
|
请发表评论