【发布时间】:2022-01-02 20:20:29
【问题描述】:
我试图在 R 中获取种子并在函数中使用它,但它不起作用。
我发现可以使用.Random.seed 获取种子,并且当我不将其包含在函数中时它可以完美运行。这是一个例子。
seed <- .Random.seed #save the local seed
.Random.seed <- seed #use the saved seed
sum(rnorm(100))
.Random.seed <- seed #use the saved seed
sum(rnorm(100))
如我们所见,我将当前种子(本地种子)保存在对象seed 中。然后我可以稍后通过将其提供给.Random.seed 来使用该种子。因此,sum(rnorm(100)) 将返回相同的值。我尝试使用函数做同样的事情,但它不起作用。
f <- function(seed){
.Random.seed <- seed
cat(sum(seed), sum(.Random.seed), "\n")
sum(rnorm(100))
}
f(seed)
f(seed) #the value changed
我使用cat 打印 .Random.seed 以确保它不会改变,也不会改变。尽管如此,rnorm(100) 发生了变化。这怎么可能?
【问题讨论】:
标签: random random-seed seed