7

を使用すると再現性が保証されると理解して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
4

3 に答える 3

21

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
于 2013-01-17T13:40:34.280 に答える
12

乱数ジェネレーターを使用する呼び出しは、 で手動で設定した場合でも、現在のシードを変更し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 が示すように、乱数ジェネレーターを使用するたびにシードをリセットして、毎回同じものを使用することを保証する必要があります。

于 2013-01-17T13:55:16.437 に答える