首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >set.seed()与.Random.seed在R中的意外行为?

set.seed()与.Random.seed在R中的意外行为?
EN

Stack Overflow用户
提问于 2018-06-18 14:18:23
回答 1查看 246关注 0票数 0

我偶然发现了这种意外的行为(对我来说),这很可能是由于我对.Random.seed的误用和/或误解。

代码语言:javascript
复制
set.seed(1234)  # This is for reproducibility
s1 <- .Random.seed
set.seed(s1)
s2 <- .Random.seed
runif(1)
s3 <- .Random.seed
set.seed(s3)
s4 <- .Random.seed
all(s2==s4)  # TRUE

我不明白的是最后一行。种子集如何“返回”到s2,即在调用runif(1)之前返回到集合?

我知道.Random.seed为统一的随机数生成器保存了种子集,但我的理解是,我也可以使用它作为set.seed()函数的输入。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-06-18 14:52:49

不能将整数向量.Random.seedset.seed一起使用。只使用第一个整数。实际上,您保存的RNG状态与调用set.seed(403)时相同,后者是.Random.seed的第一个元素。

如果您确信您有一个有效的种子向量,那么您可以将它分配给.Random.seed。但是,您最好使用rngtools::RNGseed(),因为这至少会进行一些基本的错误检查:

代码语言:javascript
复制
set.seed(1234)  # This is for reproducibility
s1 <- .Random.seed
runif(5)

.Random.seed <- s1
runif(5)

rngtools::RNGseed(s1)
runif(5)
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50911541

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档