前言:在很多情况下,我们编程时经常需要生成一组随机的数字,然而,如果一组随机数字可以使程序运行成功,但是另一组却不行的时候,我们如何记录下能使程序成功运行的那组数字呢?这便是set.seed()函数的作用。
举例:
使用R语言,生成一组随机数字:
> r1 <- rnorm(8) #生成8个随机数字
> r1
[1] -0.67509798 -0.65516676 1.49228122 0.12893907 -1.00610101 -0.97784519 -1.04227771 -0.04797154
> r2 <- rnorm(8) #再生成一组随机数字
> r2
[1] -0.8493402 -0.6088733 0.2030056 -0.6535025 -0.8949186 -0.5006307 0.2353578 -0.2134360
可以看出,每次生成的随机数字是不完全相同的,如果我想得到可重复的结果,就可以用到set.seed()方法:
> set.seed(5000) #种子数可为随意整数
> r1 <- rnorm(8)
> r1
[1] -0.1301591 -1.1406151 -2.1843771 0.7650218 -0.4735296 -0.3980398 1.0382221 -1.0565153
> set.seed(5000) #设置同样的种子
> r2 <- rnorm(8)
> r2
[1] -0.1301591 -1.1406151 -2.1843771 0.7650218 -0.4735296 -0.3980398 1.0382221 -1.0565153
说明:
众所周知,计算机并不能产生真正意义的随机数,计算机的随机功能是使用系统时钟来作为种子,如果你要模拟什么的话,每次的随机数都是不一样的。如果你事先设置了种子,这样每次的随机数都是一样的,便于重现你的研究,也便于其他人检验你的分析结果。举例中的set.seed(5000)的含义便是而是把种子设置为5000,而不再使用系统时钟。
网友评论