set.seed(100)

来源:互联网 发布:河南民生网络电视台 编辑:程序博客网 时间:2024/04/29 01:35

问题:

x<-1:1000
set.seed(100)
y<-sample(x,10)

set.seed()是什么意思? 里面的数字是什么意思?

R help如是说:set.seed is the recommended way to specify seeds. 


1.用于设定随机数种子,一个特定的种子可以产生一个特定的伪随机序列,这个函数的主要目的,是让你的模拟能够可重复出现,因为很多时候我们需要取随机数,但这段代码再跑一次的时候,结果就不一样了,如果需要重复出现同样的模拟结果的话,就可以用set.seed()。在调试程序或者做展示的时候,结果的可重复性是很重要的,所以随机数种子也就很有必要。


2.set.seed()是用于产生随机数的,一定是你的程序涉及到了模拟或仿真的算法。括号里的数只是一个编号而已,例如set.seed(100)不应将括号里的数字理解成“一百”,而是应该理解成“编号为一零零的随机数发生”,下一次再模拟可以采用二零零(200)或者一一一(111)等不同的编号即可,编号设定基本可以随意。

3.

该命令的作用是设定生成随机数的种子,种子是为了让结果具有重复性。如果不设定种子,生成的随机数无法重现。
可以参考这个http://blog.sina.com.cn/s/blog_729ca6a60102uxl9.html

> x<-1:1000
> set.seed(100)
> y<-sample(x,10)
> y
 [1] 308 258 552  57 467 482 808 368 543 169
> x<-1:1000
> set.seed(100)
> y<-sample(x,10)
> y
 [1] 308 258 552  57 467 482 808 368 543 169
> x<-1:1000
> y<-sample(x,10)
> y
 [1] 625 882 280 398 760 666 204 356 357 685
> x<-1:1000
> y<-sample(x,10)
> y
 [1] 536 711 538 747 419 171 766 876 545 276
>4.

x<-rnorm(10) #随机生成10个随机数 
x
y<-rnorm(10) #再次随机生成10个随机数 
y
set.seed(5) #设定种子 
x<-rnorm(10) # 在设定种子的前提下生成10个随机数 

set.seed(5) # 设定种子 
y<-rnorm(10)