设为首页 加入收藏

TOP

R语言-模拟产生统计专业学生的成绩
2015-02-02 14:28:29 来源: 作者: 【 】 浏览:20
Tags:语言 模拟 产生 统计 专业 学生 成绩

现在本人会以一个例子来说明R语言在统计学中的应用。模拟一个高中学生语数外三科的成绩单。


首先认识两个重要的函数,source()和print(),source()函数是用来运行R脚本的,一个R脚本保存为test.R,


在R交互式环境下通过source("test.R")来运行,print()函数打印结果。


首先每一个学生有一个学号,通过如下方式生成



代码:


#生成学号num
num <- seq(1 : 100) + 20114300


#生成语文成绩,runif表示生成分布均匀的数,最小值为min,最大值为max
chinese <- round(runif(100, min = 90, max = 150))


#生产数学成绩,用正态分布。
math <- round(rnorm(100, mean = 120, sd = 10))


#如果成绩大于150,则设置为150分
math[which(math > 150)] <- 150


#生成英语成绩
english <- round(runif(100, min = 60, max = 150))


#将数据放入框中
grade <- data.frame(num, chinese, math, english)


#将数据写入文件data中
write.table(grade, "data", col.names = F, row.names = F, sep = " ")


#对每一科成绩求平均值,后面的参数2是对列进行操作,如果对行进行操作参数为1
means <- apply(grade[c("chinese", "math", "english")], 2, mean)


#打印每一科的平均值
print(means)


#求每一科最高分
high <- apply(grade[c("chinese", "math", "english")], 2, max)


#打印每一科的最高成绩
print(high)


#求每一个同学的总分
one.sum <- apply(grade[c("chinese", "math", "english")], 1, sum)


#将单个同学的总成绩写入文件grade_sum中
write.table(one.sum, "grade_sum", col.names = F, row.names = F, sep = " ")


上面用到了正太分布和均匀分布,其实在R语言中还有其它的分布,如下



】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇R语言-R调用C++程序 下一篇R语言-基础操作

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: