R与数据分析旧笔记(二)随机抽样的一个综合例子
题目:模拟产生统计专业同学的名单(学号区分),记录数学分析、线性代数、概率统计三科成绩,然后进行一些统计分析
> num=seq(10378001,10378100) > num [1] 10378001 10378002 10378003 10378004 10378005 10378006 10378007 10378008 [9] 10378009 10378010 10378011 10378012 10378013 10378014 10378015 10378016 [17] 10378017 10378018 10378019 10378020 10378021 10378022 10378023 10378024 [25] 10378025 10378026 10378027 10378028 10378029 10378030 10378031 10378032 [33] 10378033 10378034 10378035 10378036 10378037 10378038 10378039 10378040 [41] 10378041 10378042 10378043 10378044 10378045 10378046 10378047 10378048 [49] 10378049 10378050 10378051 10378052 10378053 10378054 10378055 10378056 [57] 10378057 10378058 10378059 10378060 10378061 10378062 10378063 10378064 [65] 10378065 10378066 10378067 10378068 10378069 10378070 10378071 10378072 [73] 10378073 10378074 10378075 10378076 10378077 10378078 10378079 10378080 [81] 10378081 10378082 10378083 10378084 10378085 10378086 10378087 10378088 [89] 10378089 10378090 10378091 10378092 10378093 10378094 10378095 10378096 [97] 10378097 10378098 10378099 10378100
用runif(产生均匀分布的随机数)和rnorm(产生正态分布的随机数)
> x1=round(runif(100,min=80,max=100)) > x1 [1] 81 94 98 86 86 95 88 90 93 86 87 93 93 85 85 87 84 93 [19] 99 85 99 80 88 93 82 86 89 83 96 99 89 92 87 87 83 86 [37] 89 88 85 92 86 84 87 86 88 94 89 93 95 99 99 92 89 100 [55] 92 98 82 88 83 83 94 91 84 81 88 92 98 83 94 95 99 95 [73] 81 82 86 94 85 83 81 87 98 90 81 81 90 85 80 92 98 82 [91] 96 96 91 95 80 88 84 87 93 96 > x2=round(rnorm(100,mean=80,sd=7)) > x2 [1] 72 67 83 81 82 81 73 73 74 84 72 86 87 79 85 70 76 93 73 85 89 77 75 72 82 [26] 83 85 82 79 88 86 87 83 72 76 90 85 77 81 77 94 74 61 76 92 77 77 74 87 94 [51] 87 81 66 76 73 75 81 84 89 70 73 86 81 80 79 81 82 74 75 65 77 75 75 87 90 [76] 74 84 71 85 89 79 80 79 77 90 77 83 80 78 94 85 81 83 82 87 84 86 89 83 75 > x3=round(rnorm(100,mean=83,sd=18)) > x3 [1] 85 107 96 83 82 60 68 106 52 78 114 78 74 80 76 121 84 90 [19] 66 105 104 110 94 68 80 84 84 103 99 98 101 82 91 71 96 74 [37] 82 115 77 70 84 82 74 88 83 100 92 70 77 98 103 58 79 85 [55] 45 63 101 66 60 70 77 67 83 90 79 100 105 76 103 95 82 78 [73] 72 54 64 83 85 92 93 120 100 98 82 73 93 110 90 102 81 98 [91] 91 53 103 74 59 91 110 71 76 92 > x3[which(x3>100)]=100 #将大于100分的成绩换成100分 > x3 [1] 85 100 96 83 82 60 68 100 52 78 100 78 74 80 76 100 84 90 [19] 66 100 100 100 94 68 80 84 84 100 99 98 100 82 91 71 96 74 [37] 82 100 77 70 84 82 74 88 83 100 92 70 77 98 100 58 79 85 [55] 45 63 100 66 60 70 77 67 83 90 79 100 100 76 100 95 82 78 [73] 72 54 64 83 85 92 93 100 100 98 82 73 93 100 90 100 81 98 [91] 91 53 100 74 59 91 100 71 76 92
合成数据框并保存到硬盘
> x=data.frame(num,x1,x2,x3) > x num x1 x2 x3 1 10378001 81 72 85 2 10378002 94 67 100 3 10378003 98 83 96 4 10378004 86 81 83 5 10378005 86 82 82 6 10378006 95 81 60 7 10378007 88 73 68 8 10378008 90 73 100 9 10378009 93 74 52 10 10378010 86 84 78 11 10378011 87 72 100 12 10378012 93 86 78 13 10378013 93 87 74 14 10378014 85 79 80 15 10378015 85 85 76 16 10378016 87 70 100 17 10378017 84 76 84 18 10378018 93 93 90 19 10378019 99 73 66 20 10378020 85 85 100 21 10378021 99 89 100 22 10378022 80 77 100 23 10378023 88 75 94 24 10378024 93 72 68 25 10378025 82 82 80 26 10378026 86 83 84 27 10378027 89 85 84 28 10378028 83 82 100 29 10378029 96 79 99 30 10378030 99 88 98 31 10378031 89 86 100 32 10378032 92 87 82 33 10378033 87 83 91 34 10378034 87 72 71 35 10378035 83 76 96 36 10378036 86 90 74 37 10378037 89 85 82 38 10378038 88 77 100 39 10378039 85 81 77 40 10378040 92 77 70 41 10378041 86 94 84 42 10378042 84 74 82 43 10378043 87 61 74 44 10378044 86 76 88 45 10378045 88 92 83 46 10378046 94 77 100 47 10378047 89 77 92 48 10378048 93 74 70 49 10378049 95 87 77 50 10378050 99 94 98 51 10378051 99 87 100 52 10378052 92 81 58 53 10378053 89 66 79 54 10378054 100 76 85 55 10378055 92 73 45 56 10378056 98 75 63 57 10378057 82 81 100 58 10378058 88 84 66 59 10378059 83 89 60 60 10378060 83 70 70 61 10378061 94 73 77 62 10378062 91 86 67 63 10378063 84 81 83 64 10378064 81 80 90 65 10378065 88 79 79 66 10378066 92 81 100 67 10378067 98 82 100 68 10378068 83 74 76 69 10378069 94 75 100 70 10378070 95 65 95 71 10378071 99 77 82 72 10378072 95 75 78 73 10378073 81 75 72 74 10378074 82 87 54 75 10378075 86 90 64 76 10378076 94 74 83 77 10378077 85 84 85 78 10378078 83 71 92 79 10378079 81 85 93 80 10378080 87 89 100 81 10378081 98 79 100 82 10378082 90 80 98 83 10378083 81 79 82 84 10378084 81 77 73 85 10378085 90 90 93 86 10378086 85 77 100 87 10378087 80 83 90 88 10378088 92 80 100 89 10378089 98 78 81 90 10378090 82 94 98 91 10378091 96 85 91 92 10378092 96 81 53 93 10378093 91 83 100 94 10378094 95 82 74 95 10378095 80 87 59 96 10378096 88 84 91 97 10378097 84 86 100 98 10378098 87 89 71 99 10378099 93 83 76 100 10378100 96 75 92 > write.table(x,file="mark.txt",col.names=F,row.name=F,sep=" ")
计算各科平均分
> mean(x) [1] NA Warning message: In mean.default(x) : 参数不是数值也不是逻辑值:回覆NA > colMeans(x) num x1 x2 x3 10378050.50 89.24 80.25 83.68 > colMeans(x)[c("x1","x2","x3")] x1 x2 x3 89.24 80.25 83.68 > apply(x,2,mean) num x1 x2 x3 10378050.50 89.24 80.25 83.68
求各科最高最低分
> apply(x,2,max) num x1 x2 x3 10378100 100 94 100 > apply(x,2,min) num x1 x2 x3 10378001 80 61 45
求每人的总分
> apply(x[c("x1","x2","x3")],1,sum) [1] 238 261 277 250 250 236 229 263 219 248 259 257 254 244 246 257 244 276 [19] 238 270 288 257 257 233 244 253 258 265 274 285 275 261 261 230 255 250 [37] 256 265 243 239 264 240 222 250 263 271 258 237 259 291 286 231 234 261 [55] 210 236 263 238 232 223 244 244 248 251 246 273 280 233 269 255 258 248 [73] 228 223 240 251 254 246 259 276 277 268 242 231 273 262 253 272 257 274 [91] 272 230 274 251 226 263 270 247 252 263
求总分最高的同学
> which.max(apply(x[c("x1","x2","x3")],1,sum)) [1] 50 > x$num[which.max(apply(x[c("x1","x2","x3")],1,sum))] [1] 10378050
对x1进行直方图分析
> hist(x$x1)
探索各科成绩的关联关系
> plot(x1,x2) > plot(x$x1,x$x2)
列联表分析
> table(x$x1) 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 98 99 100 3 6 4 6 4 6 8 7 7 5 3 2 6 7 5 5 4 5 6 1 > barplot(table(x$x1))
饼图
> pie(table(x$x1))
箱线图
> boxplot(x$x1,x$x2,x$x3)
> boxplot(x[2:4],col=c("red","green","blue"),notch=T)#颜色设置
> boxplot(x$x1,x$x2,x$x3,horizontal=T)#水平放置
星相图
> stars(x[c("x1","x2","x3")])
> stars(x[c("x1","x2","x3")],full=T,draw.segment=T)#雷达图
> stars(x[c("x1","x2","x3")],full=F,draw.segment=T)#雷达图(半圆)
脸谱图
> library(aplpack) 载入需要的程辑包:tcltk > faces(x[c("x1","x2","x3")]) effect of variables: modified item Var "height of face " "x1" "width of face " "x2" "structure of face" "x3" "height of mouth " "x1" "width of mouth " "x2" "smiling " "x3" "height of eyes " "x1" "width of eyes " "x2" "height of hair " "x3" "width of hair " "x1" "style of hair " "x2" "height of nose " "x3" "width of nose " "x1" "width of ear " "x2" "height of ear " "x3"
其它脸谱图
> library(TeachingDemos) 载入程辑包:‘TeachingDemos’ The following objects are masked from ‘package:aplpack’: faces, slider > faces2(x)
茎叶图
> stem(x$x1) The decimal point is at the | 80 | 000000000 82 | 0000000000 84 | 0000000000 86 | 000000000000000 88 | 000000000000 90 | 00000 92 | 0000000000000 94 | 0000000000 96 | 0000 98 | 00000000000 100 | 0
QQ图
可用于判断是否正态分布
直线的斜率是标准差,截距是均值
点的分布越是接近直线,则越接近正态分布
> qqnorm(x1) > qqline(x1) > qqnorm(x3) > qqline(x3)
散点图的进一步设置
plot(x$x1,x$x2 main="数学分析与线性代数成绩的关系", xlab="数学分析", ylab="线性代数", xlim=c(0,100), ylim=c(0,100), xaxs="i",#Set x axis style as internal yaxs="i",#Set y axis style as internal col="red",#Set the color of plotting symbol to red pch=19)#Set the ploting symbol to filled dots
R与数据分析旧笔记(二)随机抽样的一个综合例子的更多相关文章
- R与数据分析旧笔记(十二)分类 (支持向量机)
支持向量机(SVM) 支持向量机(SVM) 问题的提出:最优分离平面(决策边界) 优化目标 决策边界边缘距离最远 数学模型 问题转化为凸优化 拉格朗日乘子法--未知数太多 KKT变换和对偶公式 问题的 ...
- R与数据分析旧笔记(五)数学分析基本
R语言的各种分布函数 rnorm(n,mean=0,sd=1)#高斯(正态) rexp(n,rate=1)#指数 rgamma(n,shape,scale=1)#γ分布 rpois(n,lambda) ...
- R与数据分析旧笔记(十八完结) 因子分析
因子分析 因子分析 降维的一种方法,是主成分分析的推广和发展 是用于分析隐藏在表面现象背后的因子作用的统计模型.试图用最少的个数的不可测的公共因子的线性函数与特殊因子之和来描述原来观测的每一分量 因子 ...
- R与数据分析旧笔记(十三) 聚类初步
聚类 聚类 关键度量指标:距离 常用距离 绝对值距离 绝对值距离也称为"棋盘距离"或"城市街区距离". 欧氏(Euclide)距离 闵可夫斯基(Minkowsk ...
- R与数据分析旧笔记(⑦)回归诊断
回归诊断 回归诊断 1.样本是否符合正态分布假设? 2.是否存在离群值导致模型发生较大误差? 3.线性模型是否合理? 4.误差是否满足独立性.等方差.正态分布等假设条件? 5.是否存在多重共线性 正态 ...
- R与数据分析旧笔记(三)不知道取什么题目
连线图 > a=c(2,3,4,5,6) > b=c(4,7,8,9,12) > plot(a,b,type="l") 多条曲线效果 plot(rain$Toky ...
- R与数据分析旧笔记(一)基本数学函数的使用
创建向量矩阵 > x1=c(2,3,6,8) > x2=c(1,2,3,4) > a1=(1:100) > length(a1) [1] 100 > length(x1) ...
- R与数据分析旧笔记(十七) 主成分分析
主成分分析 主成分分析 Pearson于1901年提出的,再由Hotelling(1933)加以发展的一种多变量统计方法 通过析取主成分显出最大的个别差异,也用来削减回归分析和聚类分析中变量的数目 可 ...
- R与数据分析旧笔记(十六) 基于密度的方法:DBSCAN
基于密度的方法:DBSCAN 基于密度的方法:DBSCAN DBSCAN=Density-Based Spatial Clustering of Applications with Noise 本算法 ...
随机推荐
- Java RMI 学习笔记
概况 功能:提供了客户辅助对象和服务辅助对象,为客户辅助对象创建和服务辅助对象形同的方法. 优点:客户不必写任何网络或I/O代码,调用远程方法就和运行在客户自己的本地JVM上对对象进行的正常方法一样. ...
- C#时间日期操作
一.C# 日期格式 DateTime dt = DateTime.Now; dt.ToString();//2005-11-5 13:21:25 dt.ToFileTime().ToString() ...
- Android android:clickable 问题
android:clickable继承自View的xml属性,其值必须是boolean值,即true.false.该标签目的是设置button是否可以被点击. <View android:cli ...
- activiti框架 数据库设计说明
1.结构设计 1.1. 逻辑结构设计 Activiti使用到的表都是ACT_开头的. ACT_RE_*: ’RE’表示repository(存储),RepositoryService接口所操作的 ...
- 新学习的Python的代码(while循环)
直接上代码: # while.py number = 23 isRun = True while isRun: intt = int(raw_input('请输入一个整数 : ')) if intt ...
- Microsoft.AlphaImageLoader滤镜讲--透明处理<转>
Microsoft.AlphaImageLoader是IE滤镜的一种,其主要作用就是对图片进行透明处理.虽然FireFox和IE7以上的IE浏览器已经支持透明的PNG图片,但是就IE5-IE6而言还是 ...
- 详述USB OTG发展及协议标准
USB On-The-Go 扩大了USB 的应用领域,将USB 从传统的PC 与外设通讯的模式,扩展到移动电子和嵌入式领域中,抛开主机PC,实现通常的外设与外设之间点对点(Point to Point ...
- SLC、eSLC、MLC、eMLC的区别
SLC.eSLC.MLC.eMLC的区别 作为SSD主要元件的NAND闪存,我们经常见到的有SLC和MLC两种,甚至还细分出eSLC和eMLC等等,现在我们谈一下他们之间的区别. SLC全 ...
- Error copying image in the datastore: Not allowed to copy image file
opennebula error copying image in the datastore not allowed to copy image file Error copying image i ...
- 轻奢请向历史SAY NO_重青网_重庆青年报_重庆青年报电子版_重庆青年报网站_重庆青年报官方网站
轻奢请向历史SAY NO_重青网_重庆青年报_重庆青年报电子版_重庆青年报网站_重庆青年报官方网站 轻奢请向历史SAY NO 经济学家George Taylor在他著名的"裙摆指数" ...