向量x里最后5个数是从正态分布里抽取均值为1的5个数,那为什么最终结果第三个水平下的均值不是1?

来源:4-4 R语言函数 tapply

竹剑

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?

写回答 关注

1回答

  • qq_无梦生_fzDPQR
    2018-10-10 08:47:09

    因为rnorm代表是随机抽取的,抽到的数的均值不一定是原本的数据的均值。比如有1:10的数,其均值为5.5,但是我从中随机抽了五个数,比如是1,2,3,4,5。其均值为3

R语言基础

本R语言基础教程,教你如何在R中操纵自己数据,快速入门

79670 学习 · 262 问题

查看课程

相似问题