如果我想在 R 中生成多个随机变量,都使用相同的种子,我是否必须每次都设置种子?例如,我应该写:

set.seed(123456)
x = runif(1000,0,1)

set.seed(123456)
e = rnorm(1000,0,1)

set.seed(123456)
y = 4 + 0.3*x + e

还是只设置一次种子并定义所有变量?

最佳答案

建议只设置一次随机种子。

从此您可以使用它自由生成随机数。

现在,要重现完全相同的随机数序列,您需要

  • 用相同的种子
  • 为生成器播种
  • 使用相同的随机数生成器(通过 RNGKind ;您通常不会在 R 中使用它),
  • 对消耗随机数的函数执行完全相同的调用序列。

  • 最后一点很重要:设置相同的随机种子但执行不同的调用序列,将产生不同的随机数。例如:
    set.seed(12345)
    runif(10)
    rnorm(10)
    
    set.seed(12345)
    runif(5)
    rnorm(10)
    

    ...这将为 rnorm 调用产生不同的随机数。

    关于r - 在 R 中设置种子,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/54753467/

    10-13 07:48