资源描述:
《r初学者指南2——实例应用》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、示例应用一(视频教程):模拟产生统计专业同学的名单(学号区分),记录数学分析、线性代数、概率统计三课成绩第一步:录入信息num=seq(10378001,10378100)num〃产生100个元素xl=round(runif(100,min=80,max=100))〃用run讦产生100个均匀分布(取到每一个数值的可能性是相同的)的随机数(带小数),roundW舍五入,从而组成向量xlx2=round(rnorm(100,mean=80/sd=7))//rnorm产生100个正态分布的随机数,均值是80,标准差是7x3=round(rnorm(100,mean=83?sd=18)
2、)〃同理产生x3,输出结果后发现有些超过了100分(因为正态分布没有上下限的概念,只有均值和标准差)x3[which(x3>100)]=100〃把超过100分的人的成绩变成100,which找出超过100分的人的下标,再用下标定位到相关元素并将其改为100第二步:合成数据框或用write.table保存到硬盘中x=data.frame(numzxl,x2/x3)〃用data.frame将4个变量合成一个数据框x中第三步:进行计算使用mean(),colMeans(),apply()—下章介绍mean(x)[1]NA警告信息:Inmean.default(x):参数不是数值也不是逻
3、辑值:冋覆NA〃这里不能直接使用mean()两数,只能对某一变量进行求平均值,如mean(xl),mean(x2)等colMeans(x)〃对列进行求均值,colMeans屮的M必须大写numxlx2x310378050.5090.4380.3981.66colMeans(x)[c(,,xr';,x2,7'x3H)]〃指定显示某列的均值xlx2x390.4380.3981.66apply(x,2,mean)//apply是对x这个数据框在行(或列)方向上做指定操作,1代表行方向,2代表列方向,综上所述,就是在x这个数据框中在列的方向上求平均值numxlx2x310378050.5
4、090.4380.3981.66第四步:使用apply求各科最高最低分apply(x,2,max)numxlx2x31037810010099100apply(x,2,min)numxlx2x310378001806546第五步:使用apply求出每人的总分apply(x[c(”xT「x2”,”x3”)]J,sum)//在行的方向上求和,注意跟colMeans()的异同第六步:which.max找出总分最高的同学(找下标)which.max(apply(x[c(,,xl";,x2"/,,x3,,)],l/sum))〃求出总分最高的那个人在向量中的下标(第74个)[1]74x$nu
5、m[which.max(apply(x[c(,,xl","x2,,/,,x3,,)]/l,sum))]//把下标带回到x,x$num代表在数据框x中取num列,再取下标为72的元素,就能确定其学号是多少[1]10378074笫七步:对X1进行直方图分析■绘制直方图函数hist()第八步:探索各科成绩的关联关系-散点图绘制函数plotplot(xl,x2)s00inin980859095100x1第九步:列联表分析•列联函数tabled柱状图绘制函数barplot()table(x$xl)〃统计每个分数有多少人(众数)80818283848586878889909192939495
6、969798255536473553682445119910052barplot(table(x$xl))饼图:pie(table(x$xl))8788828981909199929893971008483箱线图:箱子的上下横线为样本的25%和75%分位数,屮间的横线为样本的中位数上下延伸的直线称为尾线,尾线的尽头为最高值和最低值boxplot(x$xlzx$x2,x$x3)boxplot(x[2:4]/col=c("red"/"green"/,,blue"),notch=T)#将三种颜色定义为变量,notch决定缺口5-x1x2x3水平放置的箱尾图boxplot(x$xl,x$
7、x2,x$x3,horizontal=T)°-卜OZZhz■卜…111i""IIIII[507090*星相图:R02a茎叶图:>stem(x$xl)#因xl是由round(runif(100,min=80zmax=100))生成出来,所以..为何出现000000?Thedecimalpointisatthe
8、80
9、000000082
10、000000000084
11、00000000086
12、0000000000088
13、0000000090
14、0000000092
15、0000000000000