skyer_117
在matlab中,一般会有randn(’seed’,0)这样的命令,设定随机数发生器的种子为0,请问在R中需要这样的步骤么?
lattice
也可以设置,用set.seed()命令
skyer_117
我是想说,如果不设置没有影响么?
我看《统计建模与R软件》里讲的内容,基本都没有设置这个东西
但是在matlab里的书,代码基本基本开头都是这句设置种子为0,我是想问,难道R不设置也达到了matlab里设置的效果?
yanlinlin82
不设置的情况下,R估计是用了类似时间之类的值来作为随机种子的。这样每次执行的结果在数值上都会不一样。而设置确定的种子一般是为了完全重现结果。
lattice
计算机产生的都是伪随机数。我记得C语言和SAS里面,一个随机数种子就对应一个随机数流,相同的种子就对应了相同的随机数流,因此C语言里面的随机数程序一般都和系统时间关联,为的就是防止产生相同的随机数流,R里面也是相同的道理。设定随机数种子,有一部分原因是为了方便别人检验你的试验结果,平时写的程序里,没必要设定。
比如你输入以下两行代码到R里,
set.seed(0)
runif(10)
结果每次都显示相同的10个随机数吧?
skyer_117
3q3q,多谢lattice 兄和版主大大,完全明白了,灰常感谢