1

set.seed()以降の乱数生成に影響を与えないローカル環境での利用は可能でしょうか?一部の関数でシードを設定して再現可能な結果を​​得るのが一般的ですが、環境外であっても次の世代の乱数に影響を与えるため、これは残念なことだと思います。

この動作を回避する可能性はありますか?

set.seed(123)
runif(1) #[1] 0.2875775
runif(1) #[1] 0.7883051
local({
  set.seed(123)
  print(runif(1))
})
#[1] 0.2875775
runif(1) #[1] 0.7883051 (This should not be the second number again)
4

2 に答える 2