आर एक लापरवाही के अंदर .Random.seed
सेटिंग को अनदेखा करता है। हालांकि set.seed
का उपयोग करना ठीक काम करता है।यादृच्छिक संख्या जनरेटर की स्थिति को पुनर्स्थापित करने के लिए मैं आर को लापरवाही (और mclapply) कैसे प्राप्त कर सकता हूं?
कुछ कोड:
# I can save the state of the RNG for a few seeds
seed.list <- lapply(1:5, function(x) {
set.seed(x)
seed.state <- .Random.seed
print(rnorm(1))
return(seed.state)})
#[1] -0.6264538
#[1] -0.8969145
#[1] -0.9619334
# But I get different numbers if I try to restore
# the state of the RNG inside of an lapply
tmp.rest.state <- lapply(1:5, function(x) {
.Random.seed <- seed.list[[x]]
print(rnorm(1))})
# [1] -0.2925257
# [1] 0.2587882
# [1] -1.152132
# lapply is just ignoring the assignment of .Random.seed
.Random.seed <- seed.list[[3]]
print(rnorm(1)) # The last printed value from seed.list
# [1] -0.9619334
print(rnorm(1)) # The first value in tmp.rest.state
# [1] -0.2925257
मेरा लक्ष्य जांच की चौकी के एमसीएमसी चलाता है ताकि वे वास्तव में फिर से शुरू किया जा सकता है। मैं आसानी से आरएनजी की स्थिति को बचा सकता हूं, मैं इसे लापरवाही लूप के अंदर लोड करने के लिए आर नहीं प्राप्त कर सकता!
क्या .Random.seed
सेटिंग को नोटिस करने के लिए आर को मजबूर करने का कोई तरीका है? या ऐसा करने का एक आसान तरीका है?
मामले यह मायने रखता है में, मैं उपयोग कर रहा हूँ 64 बिट आर:
R version 2.15.1 (2012-06-22) -- "Roasted Marshmallows"
Platform: x86_64-pc-linux-gnu (64-bit)
Ubuntu 12.04 LTS पर:
[email protected]:~$ uname -a
Linux nathanvan-N61Jq 3.2.0-26-generiC#41-Ubuntu SMP Thu Jun 14 17:49:24 UTC 2012 x86_64 x86_64 x86_64 GNU/Linux
+1 बहुत ही रोचक सवाल, धन्यवाद। – Andrie