为什么要在R中使用set.seed?

set.seed的使用是为了确保我们获得相同的随机结果。如果我们为R或任何统计软件中的任何任务随机选择一些观测值,则它始终会产生不同的值,这是由于随机化而发生的。如果我们想保留在第一次随机选择时产生的值,则可以通过在随机化之后将它们存储在一个对象中来实现,或者可以修复随机化过程,以便始终获得相同的结果。

示例

无种子的随机分组

> sample(1:10)
[1] 4 10 5 3 1 6 9 2 8 7
> sample(1:10)
[1] 1 4 2 5 8 3 7 9 6 10
> sample(1:10)
[1] 6 3 9 5 10 2 7 1 8 4

在这里,我们创建了一个大小为10的样本三遍,所有这些样本中的值都不同。

用set.seed进行随机化

> set.seed(99)
> sample(1:10)
[1] 6 2 10 7 4 5 3 1 8 9
> set.seed(99)
> sample(1:10)
[1] 6 2 10 7 4 5 3 1 8 9
> set.seed(99)
> sample(1:10)
[1] 6 2 10 7 4 5 3 1 8 9

由于我们在所有三个样本中使用相同的set.seed,因此我们获得了相同的样本值。