在最近的一次研究中,我遇到了一个奇怪的情况,涉及函数内部随机种子的设置。考虑函数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
这里发生了什么?
josliber
用作动词。 - Joseph Wood