R语言实用案例分析-1
来源:互联网 发布:晚吃姜如砒霜 知乎 编辑:程序博客网 时间:2024/05/16 10:21
在日常生活和实际应用当中,我们经常会用到统计方面的知识,比如求最大值,求平均值等等。R语言是一门统计学语言,他可以方便的完成统计相关的计算,下面我们就来看一个相关案例。
1. 背景
最近西安交大大数据专业二班,开设了Java和大数据技术课程,班级人数共100人。
2. 需求
通过R语言完成该100位同学学号的生成,同时使用R语言模拟生成Java和大数据技术成绩,成绩满分为100,需要满足正态分布,成绩生成后,求出:1.同学们的各科总分。2. 各科平均分。3.求最高分的同学。4.求出这两门课程的关系。
实现思路:
1. 首先需要生成100位同学的学号,学号按照从小到大进行排序,可以使用seq函数,关于seq的使用,可以查看帮助文档
seq(3116393030,3116393130)
得到结果
2. 通过rnorm生成2门正态分布的成绩。
rnorm(100,mean=80,sd=11),此处生成了均值为80,标准差为11的100个学生成绩。运行结果如下:
3. 以上结果有2个问题,第一:成绩的小数点过多,我们保留整数,第二:由于满分成绩为100,结果出现了大于100的成绩,我们将大于100的成绩设置为100
使用round函数取得整数
round(rnorm(100,mean=80,sd=11))
把结果中大于100的值设置为100,也就是满分为100
x<-round(rnorm(100,mean=80,sd=11))
x[x>100]=100
x
结果如下:
4. 同样的道理,我们在生成另外一门课程的成绩,在这里我们为了练习,使用runif生成均匀分布的随机数。
使用runif生成100个最小值为80,最大值为100的均匀分布函数
y<-runif(100,min=80,max=100)
round(y)
结果如下:
5. 把生成的学号,2门课程的成绩生成dataframe结构,我们把以上代码做个调整,并且运行。
num<-seq(3116393031,3116393130)
x<-round(rnorm(100,mean=80,sd=11))
x[x>100]=100
y<-round(runif(100,min=80,max=100))
info<-data.frame(num,x,y)
info
结果如下:
.....
6. 求每个学生两门的平均成绩,通过z列进行表示
z<-rowMeans(info[,-1])#去除第一列后求行均值
info1<-data.frame(num,x,y,z) #重新组合成一个dataframe
结果如下:
....
7. 求每个同学的总分,并且通过z列显示出来
使用apply函数将sum应用在需要进行加操作的列上,比如第2列和第3列
z<-apply(info1[,c("x","y")],1,sum)
info2<-data.frame(num,x,y,z)
结果如下:
......
8. 找出总成绩最高的同学的学号
通过which.max找出总分最大的列,然后找出相应的学号
info2[which.max(info2[,c("z")]),][,1]
结果如下:
9. 显示同学总分的柱状图
hist(info2$z)
从上面的柱状图可以看出总成绩的分布情况
以上R案例分析内容属于抛砖引玉,如有不足地方,欢迎批评指正。
- R语言实用案例分析-1
- R语言实用案例分析-相关系数的应用
- 92、R语言分析案例
- R语言生存分析数据分析可视化案例
- R语言案例分析:多元数据的基本统计分析
- R语言实用小技巧
- R语言实用函数整理
- 数据挖掘:实用案例分析
- R语言案例分析:财政收入的多元相关与回归分析
- R语言快速入门_案例分析之考试成绩的回归分析
- R语言 shiny企业轻量级可视化应用案例(R语言&大数据分析qq群 456726635 欢迎讨论交流)
- 读《区域经济研究实用方法》-第四章-R语言在空间数据分析中的应用
- R语言文本分析(1)
- R语言多元分析
- R语言-回归分析
- R语言 股价分析
- R语言-文本分析
- R语言相关分析
- echarts柱状折线图数据量大,柱状图不显示问题解决办法.
- C# 格式化输出
- PAT A 1117. Eddington Number
- ArcGIS读取天地图出现错位的情况
- java使用poi操作excel
- R语言实用案例分析-1
- checkbox全选、反选功能
- BeanUtils.copyProperties() 用法
- React Native iOS原生模块开发实战|教程|心得|如何创建React Native iOS原生模块
- jquery插件EasyUI中form表单提交实例分享
- Tex中的引号(UVa 272)
- TypeScript入门-7.函数特性-不定参数
- Android LayoutInflater原理分析,带你一步步深入了解View(一)
- 基于zookeeper的分布式lock实现