如果你这样做,
set.seed(NULL)
然后重新运行代码,每次都会收到不同的值。但是,如果您执行以下操作
set.seed(1729)
,
set.seed(42)
等等,你会再次得到相同的号码。
在我的系统中,正在运行
设置种子(空)
结果如下:
> set.seed(NULL)
> var <- sample(c(-2, -1, 0, 1, 2), size = 1)
> var
[1] -2
> var <- sample(c(-2, -1, 0, 1, 2), size = 1)
> var
[1] 1
如果我尝试
设置种子(1729)
然后重新运行代码,我将收到:
> set.seed(1729)
> var <- sample(c(-2, -1, 0, 1, 2), size = 1)
> var
[1] 0
> var <- sample(c(-2, -1, 0, 1, 2), size = 1)
> var
[1] 0
我们选择的种子数是生成随机数序列的起点,这就是为什么我们在给定相同种子数的情况下得到相同的结果。
文档中的注释
?set.seed
:
最初,没有种子;将根据当前
时间和进程ID(如果需要)。因此会有不同的会议
默认情况下,将给出不同的模拟结果。然而,种子
如果以前保存了会话,则可能会从以前的会话中恢复
工作区已还原。