वहाँ बीज set.seed()
में इस्तेमाल किया और .Random.seed
में जानकारी के बीच प्रभावी रूप से एक एक-तरफा संबंध है, ?Random.seed
कहता है और @ मैटटेनबेम का उत्तर दिखाता है, .Random.seed
में जानकारी को सहेजा और बहाल किया जा सकता है। मैं एक समारोह है कि .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
के लिए @JoshuaUlrich के रूप में करने के लिए है बताते हैं, यह केवल काम करता है/केवल सुरक्षित है आप बचत और बहाल करने के बीच 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/
स्रोत
2012-12-21 21:44:59
'बीज <- 123456 करने के लिए यह आसान नहीं होगा; set.seed (बीज) 'और फिर प्रिंट करें और' बीज' के मूल्य को स्टोर करें? – joran
हां, लेकिन मैं कोड की रेखा पर टिप्पणी करूंगा जब मेरे पास कोई विशिष्ट बीज नहीं है जिसे मैं शुरू करना चाहता हूं। निष्पक्षता में –
, उस पृष्ठ में बहुत सारी जानकारी है ... –