繁体   English   中英

R中set.seed的参数

[英]Argument of set.seed in R

我试图理解set.seed如何在R中工作。我理解它,可以重现随机样本,但我不知道set.seed(1)set.seed(123)之间有什么区别?

括号中的参数是什么意思?

所述seed在参数set.seed是一个单一的值,解释为一个整数(如在定义help(set.seed())所述seedset.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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM