为什么 set.seed() 会影响 R 中的sample()

2023-11-26

我一直以为set.seed()只制作随机变量生成器(例如,rnorm)为任何特定的输入值集生成唯一的序列。

但是,我想知道,为什么当我们设置set.seed(),那么函数sample()没有正确完成其工作?

Question

具体来说,给出下面的例子,有什么办法我可以使用set.seed之前rnorm but sample仍然会从中产生新的随机样本rnorm if sample运行多次?

这是一个 R 代码:

set.seed(123458)
x.y = rnorm(1e2)

sampled = sample(x = x.y, size = 20, replace = TRUE)

plot(sampled)

根据帮助文件?set.seed

“如果使用 seed = NULL 调用,它会重新初始化(参见‘注意’),就好像没有一样 种子还没有定下来。”

所以,自从rnorm and sample都受到影响set.seed(), 你可以做:

set.seed(639245)
rn <- rnorm(1e2)
set.seed(NULL)
sample(rn,5)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

为什么 set.seed() 会影响 R 中的sample() 的相关文章

随机推荐