他们使用的概率分布是什么?我知道 runif 给出小数,sample 给出整数,但我感兴趣的是,sample 是否也使用“均匀概率分布”?
考虑以下代码和输出:
> set.seed(1)
> round(runif(10,1,100))
[1] 27 38 58 91 21 90 95 66 63 7
> set.seed(1)
> sample(1:100, 10, replace=TRUE)
[1] 27 38 58 91 21 90 95 67 63 7
这强烈表明,当被要求做同样的事情时,这两个函数给出几乎相同的输出(尽管有趣的是round
给出相同的输出而不是floor
or ceiling
)。主要区别在于默认值,如果您不更改这些默认值,那么两者都会给出称为统一的东西(尽管sample
将被视为离散制服并且默认情况下无需替换)。
Edit
比较正确的比较是:
> ceiling(runif(10,0,100))
[1] 27 38 58 91 21 90 95 67 63 7
而不是使用round
.
我们甚至可以更进一步:
> set.seed(1)
> tmp1 <- sample(1:100, 1000, replace=TRUE)
> set.seed(1)
> tmp2 <- ceiling(runif(1000,0,100))
> all.equal(tmp1,tmp2)
[1] TRUE
当然如果probs
论证sample
使用(并非所有值都相等),那么它将不再统一。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)