文档详情

R初学者指南2——实例应用.docx

发布:2017-04-29约字共9页下载文档
文本预览下载声明
示例应用一(视频教程):模拟产生统计专业同学的名单(学号区分),记录数学分析、线性代数、概率统计三课成绩 第一步:录入信息 num=seq10378100) num //产生100个元素 x1=round(runif(100,min=80,max=100)) //用runif产生100个均匀分布(取到每一个数值的可能性是相同的)的随机数(带小数),round四舍五入,从而组成向量x1 x2=round(rnorm(100,mean=80,sd=7)) // rnorm产生100个正态分布的随机数,均值是80,标准差是7 x3=round(rnorm(100,mean=83,sd=18)) //同理产生x3,输出结果后发现有些超过了100分(因为正态分布没有上下限的概念,只有均值和标准差) x3[which(x3100)]=100 //把超过100分的人的成绩变成100,which找出超过100分的人的下标,再用下标定位到相关元素并将其改为100 第二步:合成数据框或用write.table保存到硬盘中 x=data.frame(num,x1,x2,x3) //用data.frame将4个变量合成一个数据框x中 第三步:进行计算 使用mean(),colMeans(),apply()—下章介绍 mean(x) [1] NA 警告信息: In mean.default(x) : 参数不是数值也不是逻辑值:回覆NA //这里不能直接使用mean()函数,只能对某一变量进行求平均值,如mean(x1),mean(x2)等 colMeans(x) //对列进行求均值,colMeans中的M必须大写 num x1 x2 x3 50 90.43 80.39 81.66 colMeans(x)[c(x1,x2,x3)] //指定显示某列的均值 x1 x2 x3 90.43 80.39 81.66 apply(x,2,mean) //apply是对x这个数据框在行(或列)方向上做指定操作,1代表行方向,2代表列方向,综上所述,就是在x这个数据框中在列的方向上求平均值 num x1 x2 x3 50 90.43 80.39 81.66 第四步:使用apply求各科最高最低分 apply(x,2,max) num x1 x2 x3 100 99 100 apply(x,2,min) num x1 x2 x3 80 65 46 第五步:使用apply求出每人的总分 apply(x[c(x1,x2,x3)],1,sum) //在行的方向上求和,注意跟colMeans()的异同 第六步:which.max找出总分最高的同学(找下标) which.max(apply(x[c(x1,x2,x3)],1,sum)) //求出总分最高的那个人在向量中的下标(第74个) [1] 74 x$num[which.max(apply(x[c(x1,x2,x3)],1,sum))] //把下标带回到x,x$num代表在数据框x中取num列,再取下标为72的元素,就能确定其学号是多少 [1]第七步:对x1进行直方图分析-绘制直方图函数hist() hist(x$x1) 第八步:探索各科成绩的关联关系-散点图绘制函数plot plot(x1,x2) 第九步:列联表分析-列联函数table(),柱状图绘制函数barplot() table(x$x1) //统计每个分数有多少人(众数) 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 2 5 5 5 3 6 4 7 3 5 5 3 6 8 2 4 4 5 11 99 100 5 2 barplot(table(x$x1)) 饼图: pie(table(x$x1)) 箱线图: 箱子的上下横线为样本的25%和75%分位数,中间的横线为样本的中位数 上下延伸的直线称为尾线,尾线的尽头为最高值和最低值 boxpl
显示全部
相似文档