首页 > 解决方案 > 尽管R中的种子相同,但样本不同

问题描述

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

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

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

标签: rrandom-seed

解决方案


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

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

    a = 1:10

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

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

例如查看随机数生成器的工作原理


推荐阅读