set.seed()
で使用される種子および.Random.seed
の情報との間の一方向の関係を効果的にあります。 ?Random.seed
と@ MattTenenbaumの答えが示すように、.Random.seed
の情報を保存して復元することができます。 @JoshuaUlrichとして例えば...私は.Random.seed
の現在の状態から、簡単な整数の種を導き出すだろう機能のための欲求を認めるが、その不在で、あなたは完全な情報を保存し、復元する必要が
set.seed(1001)
save(".Random.seed",file="random_state_seed1001.RData") ## save current state
runif(1)
## [1] 0.9856888
runif(1)
## [1] 0.4126285
runif(1)
## [1] 0.4295392
load("random_state_seed1001.RData") ## restore state just after set.seed()
runif(1)
## [1] 0.9856888
指摘あなたが保存と復元の間RNGの種類(通常のずれて発電機の種類)を変更しない場合は、この唯一の作品/のみ安全です...
より完全なソリューション:
save_rng <- function(savefile=tempfile()) {
if (exists(".Random.seed")) {
oldseed <- get(".Random.seed", .GlobalEnv)
} else stop("don't know how to save before set.seed() or r*** call")
oldRNGkind <- RNGkind()
save("oldseed","oldRNGkind",file=savefile)
invisible(savefile)
}
restore_rng <- function(savefile) {
load(savefile)
do.call("RNGkind",as.list(oldRNGkind)) ## must be first!
assign(".Random.seed", oldseed, .GlobalEnv)
}
試してみる:
set.seed(101)
RNGstore <- save_rng() ## save file name
runif(1)
## [1] 0.3721984
runif(10)
## [1] 0.04382482 0.70968402 0.65769040 0.24985572 0.30005483 0.58486663
## [7] 0.33346714 0.62201196 0.54582855 0.87979573
restore_rng(RNGstore)
runif(1)
## [1] 0.3721984
も参照してください:http://www.cookbook-r.com/Numbers/Saving_the_state_of_the_random_number_generator/
'seed < - 123456;を実行する方が簡単ではないでしょうか。 set.seed(seed) 'を実行し、' seed'の値を出力して保存しますか? – joran
はい、始めたい特定のシードがない場合は、コード行をコメントアウトします。 –
公正で、そのページには多くの情報があります。 –