【发布时间】:2015-09-14 01:26:41
【问题描述】:
在a recent investigation 在函数中设置随机种子期间,我遇到了一个奇怪的情况。考虑函数f 和g,它们分别设置随机种子,然后执行简单的随机操作:
g <- function(size) { set.seed(1) ; runif(size) }
f <- function(x) { set.seed(2) ; x*runif(length(x)) }
因为每个函数都设置随机种子,所以我希望每个函数在给定相同输入的情况下始终具有相同的返回值。这意味着f(g(2)) 应该返回与x <- g(2) ; f(x) 相同的内容。令我惊讶的是,情况并非如此:
f(g(2))
# [1] 0.1520975 0.3379658
x <- g(2)
f(x)
# [1] 0.04908784 0.26137017
这是怎么回事?
【问题讨论】:
标签: r random random-seed