竹剑
2018-10-07 16:54
>x<- c(rnorm(5),runif(5),rnorm(5,1))
> x
[1] -0.90345261 1.39910875 0.05362229 -0.23041832 -0.16534230 0.15003609
[7] 0.67598238 0.97964256 0.88347497 0.33474777 0.79609395 0.89146970
[13] 2.63441958 0.90107896 1.42849207
> # rnorm(5)是从正态分布里抽取5个数,runif(5)是从均匀分布里抽取5个数,rnorm(5,1)正态分布里抽取均值为1的5个数。
> f<- gl(3,5) #创建3个水平,每个水平含有5个元素的因子。
> f
[1] 1 1 1 1 1 2 2 2 2 2 3 3 3 3 3
Levels: 1 2 3
> tapply(x,f,mean) #求x里的数据在每因子水平下的均值。
1 2 3
0.03070356 0.60477676 1.33031085
向量x里最后5个数是从正态分布里抽取均值为1的5个数,那为什么最终结果第三个水平下的均值不是1?
因为rnorm代表是随机抽取的,抽到的数的均值不一定是原本的数据的均值。比如有1:10的数,其均值为5.5,但是我从中随机抽了五个数,比如是1,2,3,4,5。其均值为3
R语言基础
79670 学习 · 262 问题
相似问题