随机数发生器的再现性
当期望有人重现其中包含随机元素的 R 代码时,set.seed()
函数变得非常方便。例如,这两行将始终产生不同的输出(因为这是随机数生成器的整点):
> sample(1:10,5)
[1] 6 9 2 7 10
> sample(1:10,5)
[1] 7 6 1 2 10
这两个也将产生不同的输出:
> rnorm(5)
[1] 0.4874291 0.7383247 0.5757814 -0.3053884 1.5117812
> rnorm(5)
[1] 0.38984324 -0.62124058 -2.21469989 1.12493092 -0.04493361
但是,如果我们在两种情况下将种子设置为相同的(大多数人为简单起见使用 1),我们会得到两个相同的样本:
> set.seed(1)
> sample(letters,2)
[1] "g" "j"
> set.seed(1)
> sample(letters,2)
[1] "g" "j"
与 rexp()
绘制相同:
> set.seed(1)
> rexp(5)
[1] 0.7551818 1.1816428 0.1457067 0.1397953 0.4360686
> set.seed(1)
> rexp(5)
[1] 0.7551818 1.1816428 0.1457067 0.1397953 0.4360686