我有一個腳本,看起來像這樣:[R種子sedding不是「設置」,結果沒有再現
#This is the master script. It runs all other scripts.
rm(list=ls())
#Run data cleaing script
source("datacleaning.R")
set.seed(413) #Seed pre-selected as lead author's wife's birthday (April 13th)
reps=128
#Make imputated datasets
source("makeimps.R")
#Model selection step 1.
source("model_selection.1.R")
load("AIC_results.1")
AIC_results
#best model removed the year interaction
#Model selection step 2. removed year interaction
source("model_selection.2.R")
load("AIC_results.2")
AIC_results
#all interactions pretty good. keeping this model
#Final selected model:
source("selectedmodel.R")
我送這個主腳本的超級計算集羣;在32個內核上需要大約17個小時的CPU時間和40分鐘的壁掛時間。 (因此我不可重現的例子)。但是,當我運行腳本時,查看結果,然後再次運行,再次查看結果,它們稍有不同。爲什麼?我設定了種子!種子是否以某種方式重置?我是否需要在每個腳本文件中指定種子?
我需要增加代表的數量,因爲它清楚地表明我還沒有充分收斂。但這是一個單獨的問題。爲什麼我的結果不能複製自己,我該如何解決?
在此先感謝。
編輯:我正在通過doMC
和plyr
進行並行化。根據下面的評論,一些輕的谷歌搜索引起了人們無法真正使用這些軟件包設置「並行種子」的事實。我需要以某種方式將我的代碼遷移到SNOW
。如果有人知道doMC
和plyr
的解決方案,我會很高興知道它是什麼。
看在你似乎被保存那些RDATA文件。在他們中的任何一箇中,是否有一個'.Random.seed'對象?嘗試使用[此問題]的答案(http://stackoverflow.com/q/4831050/1465387)。 – 2013-04-10 05:17:05
如果任何您正在輸出使用R多核包中的文件,看看這個:http://stats.stackexchange.com/a/3534 – hrbrmstr 2013-04-10 05:21:26
@hrbrmstr:完蛋了。做了一些挖掘工作。謝謝。 – 2013-04-10 05:29:08