尽管 R 中的种子相同,但样本不同

Different samples despite same seed in R

我知道使用 set.seed() 设置相同的种子应该确保在使用使用随机化的函数时得到相同的结果,但即使是这个简单的例子,它似乎对我也不起作用

set.seed(1)
a = 1:10
sample(a, 1)
sample(a, 1)

也就是说,我得到两个不同的数字作为两个 sample() 函数调用的输出。 可能发生了什么?

设置种子允许 R 生成相同的 series 随机数。因此,当您第二次调用 sample() 时,它使用的是该系列中的第二个数字。

如果您希望两次调用 sample() 的结果相同,您需要在每次调用之前设置种子:

    a = 1:10

    set.seed(1)
    sample(a, 1)

    set.seed(1)
    sample(a, 1)

参见示例how the random number generator works