在R中设置随机种子

3

如果我想在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

或者只设置一次种子并定义所有变量?
1个回答

5

建议只在开始时设置随机数种子一次

之后您可以自由地使用它来生成随机数。

复现完全相同的随机数序列,您需要:

  1. 使用相同的种子对生成器进行初始化,
  2. 使用相同的随机数生成器(通过RNGKind;在R中通常不需要更改),
  3. 执行相同的调用函数以消耗随机数的序列。

最后一点很重要:设置相同的随机种子但执行不同的调用序列会产生不同的随机数。例如:

set.seed(12345)
runif(10)
rnorm(10)

set.seed(12345)
runif(5)
rnorm(10)

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


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接