题目:模拟产生统计专业同学的名单(学号区分),记录数学分析、线性代数、概率统计三科成绩,然后进行一些统计分析

> 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与数据分析旧笔记(二)随机抽样的一个综合例子的更多相关文章

  1. R与数据分析旧笔记(十二)分类 (支持向量机)

    支持向量机(SVM) 支持向量机(SVM) 问题的提出:最优分离平面(决策边界) 优化目标 决策边界边缘距离最远 数学模型 问题转化为凸优化 拉格朗日乘子法--未知数太多 KKT变换和对偶公式 问题的 ...

  2. R与数据分析旧笔记(五)数学分析基本

    R语言的各种分布函数 rnorm(n,mean=0,sd=1)#高斯(正态) rexp(n,rate=1)#指数 rgamma(n,shape,scale=1)#γ分布 rpois(n,lambda) ...

  3. R与数据分析旧笔记(十八完结) 因子分析

    因子分析 因子分析 降维的一种方法,是主成分分析的推广和发展 是用于分析隐藏在表面现象背后的因子作用的统计模型.试图用最少的个数的不可测的公共因子的线性函数与特殊因子之和来描述原来观测的每一分量 因子 ...

  4. R与数据分析旧笔记(十三) 聚类初步

    聚类 聚类 关键度量指标:距离 常用距离 绝对值距离 绝对值距离也称为"棋盘距离"或"城市街区距离". 欧氏(Euclide)距离 闵可夫斯基(Minkowsk ...

  5. R与数据分析旧笔记(⑦)回归诊断

    回归诊断 回归诊断 1.样本是否符合正态分布假设? 2.是否存在离群值导致模型发生较大误差? 3.线性模型是否合理? 4.误差是否满足独立性.等方差.正态分布等假设条件? 5.是否存在多重共线性 正态 ...

  6. R与数据分析旧笔记(三)不知道取什么题目

    连线图 > a=c(2,3,4,5,6) > b=c(4,7,8,9,12) > plot(a,b,type="l") 多条曲线效果 plot(rain$Toky ...

  7. R与数据分析旧笔记(一)基本数学函数的使用

    创建向量矩阵 > x1=c(2,3,6,8) > x2=c(1,2,3,4) > a1=(1:100) > length(a1) [1] 100 > length(x1) ...

  8. R与数据分析旧笔记(十七) 主成分分析

    主成分分析 主成分分析 Pearson于1901年提出的,再由Hotelling(1933)加以发展的一种多变量统计方法 通过析取主成分显出最大的个别差异,也用来削减回归分析和聚类分析中变量的数目 可 ...

  9. R与数据分析旧笔记(十六) 基于密度的方法:DBSCAN

    基于密度的方法:DBSCAN 基于密度的方法:DBSCAN DBSCAN=Density-Based Spatial Clustering of Applications with Noise 本算法 ...

随机推荐

  1. Java RMI 学习笔记

    概况 功能:提供了客户辅助对象和服务辅助对象,为客户辅助对象创建和服务辅助对象形同的方法. 优点:客户不必写任何网络或I/O代码,调用远程方法就和运行在客户自己的本地JVM上对对象进行的正常方法一样. ...

  2. C#时间日期操作

     一.C# 日期格式 DateTime dt = DateTime.Now; dt.ToString();//2005-11-5 13:21:25 dt.ToFileTime().ToString() ...

  3. Android android:clickable 问题

    android:clickable继承自View的xml属性,其值必须是boolean值,即true.false.该标签目的是设置button是否可以被点击. <View android:cli ...

  4. activiti框架 数据库设计说明

    1.结构设计 1.1.    逻辑结构设计 Activiti使用到的表都是ACT_开头的. ACT_RE_*: ’RE’表示repository(存储),RepositoryService接口所操作的 ...

  5. 新学习的Python的代码(while循环)

    直接上代码: # while.py number = 23 isRun = True while isRun: intt = int(raw_input('请输入一个整数 : ')) if intt ...

  6. Microsoft.AlphaImageLoader滤镜讲--透明处理<转>

    Microsoft.AlphaImageLoader是IE滤镜的一种,其主要作用就是对图片进行透明处理.虽然FireFox和IE7以上的IE浏览器已经支持透明的PNG图片,但是就IE5-IE6而言还是 ...

  7. 详述USB OTG发展及协议标准

    USB On-The-Go 扩大了USB 的应用领域,将USB 从传统的PC 与外设通讯的模式,扩展到移动电子和嵌入式领域中,抛开主机PC,实现通常的外设与外设之间点对点(Point to Point ...

  8. SLC、eSLC、MLC、eMLC的区别

    SLC.eSLC.MLC.eMLC的区别 作为SSD主要元件的NAND闪存,我们经常见到的有SLC和MLC两种,甚至还细分出eSLC和eMLC等等,现在我们谈一下他们之间的区别.       SLC全 ...

  9. 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 ...

  10. 轻奢请向历史SAY NO_重青网_重庆青年报_重庆青年报电子版_重庆青年报网站_重庆青年报官方网站

    轻奢请向历史SAY NO_重青网_重庆青年报_重庆青年报电子版_重庆青年报网站_重庆青年报官方网站 轻奢请向历史SAY NO 经济学家George Taylor在他著名的"裙摆指数" ...