を使用すると再現性が保証されると理解してset.seed
いますが、次の R コードはそうではありませんR 2.15.2
。ここで何か不足していますか?
set.seed(12345)
rnorm(5)
[1] 0.5855288 0.7094660 -0.1093033 -0.4534972 0.6058875
rnorm(5)
[1] -1.8179560 0.6300986 -0.2761841 -0.2841597 -0.9193220
を使用すると再現性が保証されると理解してset.seed
いますが、次の R コードはそうではありませんR 2.15.2
。ここで何か不足していますか?
set.seed(12345)
rnorm(5)
[1] 0.5855288 0.7094660 -0.1093033 -0.4534972 0.6058875
rnorm(5)
[1] -1.8179560 0.6300986 -0.2761841 -0.2841597 -0.9193220
set.seed()
乱数ジェネレーターを再初期化します。
set.seed(12345)
rnorm(5)
[1] 0.5855288 0.7094660 -0.1093033 -0.4534972 0.6058875
set.seed(12345)
rnorm(5)
[1] 0.5855288 0.7094660 -0.1093033 -0.4534972 0.6058875
set.seed(12345)
rnorm(5)
[1] 0.5855288 0.7094660 -0.1093033 -0.4534972 0.6058875
乱数ジェネレーターを使用する呼び出しは、 で手動で設定した場合でも、現在のシードを変更しset.seed
ます。
set.seed(1)
x <- .Random.seed # get the current seed
runif(10) # uses random number generator, so changes current seed
y <- .Random.seed
identical(x, y) # FALSE
@StephanKolassa が示すように、乱数ジェネレーターを使用するたびにシードをリセットして、毎回同じものを使用することを保証する必要があります。