[英]Argument of set.seed in R
我试图理解set.seed
如何在R中工作。我理解它,可以重现随机样本,但我不知道set.seed(1)
和set.seed(123)
之间有什么区别?
括号中的参数是什么意思?
所述seed
在参数set.seed
是一个单一的值,解释为一个整数(如在定义help(set.seed())
所述seed
在set.seed
产生其中所独有的随机值seed
(和将是相同的,不论你运行的计算机,因此确保了可重复性。所以set.seed(1)
和set.seed(123)
生成的随机值不会相同,而是由计算机中的R使用set.seed(1)
生成的随机值set.seed(1)
和R在我的电脑中使用相同的seed
是相同的。
set.seed(1)
x<-rnorm(10,2,1)
> x
[1] 1.373546 2.183643 1.164371 3.595281 2.329508 1.179532 2.487429 2.738325 2.575781 1.694612
set.seed(123)
y<-rnorm(10,2,1)
> y
[1] 1.4395244 1.7698225 3.5587083 2.0705084 2.1292877 3.7150650 2.4609162 0.7349388 1.3131471 1.5543380
> identical(x,y)
[1] FALSE
大多数计算机程序使用确定性算法来生成随机数(这就是为什么它们生成的数字不是真正随机的,而是伪随机数,这对于大多数目的而言足够好)。 R也没有什么不同,你可以把它产生的随机数看作是一长串“随机”数字的一部分,当被召唤时,只是从某个点开始,为你吐出伪随机数。 通过使用set.seed()
您基本上可以为程序提供一个起点,而不是让它选择自己的程序。 这就是为什么运行相同种子号的任何用户都会得到相同的结果。
您可以运行?RNGkind
以获取有关该主题的更多信息。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.