您的位置:首页 > 其它

R语言笔记-set.seed()函数

2017-01-21 15:17 363 查看
今天查了一下R语言中set.seed(),该命令的作用是设定生成随机数的种子,种子是为了让结果具有重复性。如果不设定种子,生成的随机数无法重现。

> x<-rnorm(10) #随机生成10个随机数
> x
[1] 0.3897943 -1.2080762 -0.3636760 -1.6266727 -0.2564784 1.1017795 0.7557815
[8] -0.2382336 0.9874447 0.7413901

> x<-rnorm(10) #再次随机生成10个随机数
> x

[1] 0.08934727 -0.95494386 -0.19515038 0.92552126 0.48297852 -0.59631064 -2.18528684
[8] -0.67486594 -2.11906119 -1.26519802

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

[1] -0.84085548 1.38435934 -1.25549186 0.07014277 1.71144087 -0.60290798 -0.47216639
[8] -0.63537131 -0.28577363 0.13810822

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

[1] -0.84085548 1.38435934 -1.25549186 0.07014277 1.71144087 -0.60290798 -0.47216639
[8] -0.63537131 -0.28577363 0.13810822

> x == y
[1] TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE


上述内容转载自 http://blog.sina.com.cn/s/blog_5de124240101pwm3.html

关于该函数补充如下: set.seed( ) 括号的数只是一个编号,作为标记使用,取值可以随意;当以后需要取得与上次相同的随机数时, set.seed( ) 中填写回该值即可。

例如 set.seed(100) 不应将括号里的数字理解成“一百”,而是应该理解成“编号为一零零的随机数发生”, 下一次再模拟可以采用二零零(200)或者(111)等不同的编号都行。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息