【仅供学习记录】
之前关于set.seed()函数一知半解,只知道用于生成随机数,其真正作用并不知晓。在复现别人代码的时候关于随机数一直有个疑问:每次代码实现的时候随机数不同,那其他人如何能复现原 论文中的结果呢?今天这个疑问才被解决。原来是set.seed()函数起了作用。
在每次生成伪随机数的时候,函数都会使用一个不同的种子,因此也会产生不同的结果。可以通过set.seed()函数显式指定这个种子,让结果可以重现。
> runif(5) #无随机数种子
[1] 0.90158585 0.91960428 0.16385682 0.67086225 0.01240012
> runif(5)
[1] 0.65213305 0.02197965 0.47282396 0.22242617 0.13393265
> runif(5)
[1] 0.1594409 0.7708923 0.8499345 0.6602479 0.2170510
> set.seed(1234) #设置随机数种子
> runif(5)
[1] 0.1137034 0.6222994 0.6092747 0.6233794 0.8609154
> set.seed(1234) #运行同样的种子,随机数固定
> runif(5)
[1] 0.1137034 0.6222994 0.6092747 0.6233794 0.8609154
> set.seed(1) #设置不同的种子
> runif(5)
[1] 0.2655087 0.3721239 0.5728534 0.9082078 0.2016819
> set.seed(1)
> runif(5)
[1] 0.2655087 0.3721239 0.5728534 0.9082078 0.2016819
>