首页 > 解决方案 > 在R中设置种子

问题描述

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

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

标签: r

解决方案


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

从那时起,您可以使用它自由地生成随机数。

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

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

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

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

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

…这将为呼叫产生不同的随机数。rnorm


推荐阅读