2011-07-28 64 views
2

我有一個foreach,使用.combine = rbind和112個任務,一次6個並行操作。詳細的,我可以看到,所有的任務完成並結合,但然後我得到消息「任務6失敗 - 」缺少值真正/錯誤需要「foreach中的錯誤?所有任務完成/合併後的任務中出錯?

所以我試圖運行只是最後12個任務和一切工作得很好!所以,在過去的12似乎沒有任何問題,每詳細輸出,第100成功地結合。

幫助!=)

numValues: 112, numResults: 0, stopped: TRUE 
automatically exporting the following variables from the local environment: 
    data, dependentVariables, groupByVariable, numberOfBinsForMissingValueHistogram, outputDirectory 
got results for task 1 
numValues: 112, numResults: 1, stopped: TRUE 
returning status FALSE 
... 
got results for task 100 
numValues: 112, numResults: 100, stopped: TRUE 
first call to combine function 
evaluating call object to combine results: 
    fun(result.1, result.2, result.3, result.4, result.5, result.7, 
    result.8, result.9, result.10, result.11, result.12, result.13, 
    result.14, result.15, result.16, result.17, result.18, result.19, 
    result.20, result.21, result.22, result.23, result.24, result.25, 
    result.26, result.27, result.28, result.29, result.30, result.31, 
    result.32, result.33, result.34, result.35, result.36, result.37, 
    result.38, result.39, result.40, result.41, result.42, result.43, 
    result.44, result.45, result.46, result.47, result.48, result.49, 
    result.50, result.51, result.52, result.53, result.54, result.55, 
    result.56, result.57, result.59, result.60, result.61, result.62, 
    result.63, result.64, result.65, result.66, result.67, result.68, 
    result.69, result.70, result.71, result.72, result.73, result.74, 
    result.75, result.76, result.77, result.78, result.79, result.80, 
    result.81, result.82, result.83, result.84, result.85, result.86, 
    result.87, result.88, result.89, result.90, result.91, result.92, 
    result.93, result.94, result.95, result.96, result.97, result.98, 
    result.99, result.100) 
returning status FALSE 
got results for task 101 
numValues: 112, numResults: 101, stopped: TRUE 
... 
got results for task 112 
numValues: 112, numResults: 112, stopped: TRUE 
calling combine function 
evaluating call object to combine results: 
    fun(accum, result.101, result.102, result.103, result.104, result.105, 
    result.106, result.107, result.108, result.109, result.110, 
    result.111, result.112) 
returning status TRUE 
Error in { : task 6 failed - "missing value where TRUE/FALSE needed" 
+0

這將有助於知道你到底在做什麼......類似的情況可能發生在隨機過程中,先進的擬合方法可能依賴於啓動參數,中斷的輸入對象等等。追溯()可以幫助。至於錯誤的方法,我希望你注意到結果.6永遠不會包含在聯合中... –

+0

@Joris - 我遍歷數據框中的列並計算一堆統計信息(如缺少%,標準偏差,等等。)。這是我第一次聽到有關traceback()的消息,所以我會深入研究。我沒有注意到結果。接得好!我將不得不孤立到(我錯誤地認爲foreach會停止,當它遇到一個錯誤) – SFun28

+0

@Joris - 我有一個問題,我的功能,導致任務6失敗...你可以張貼您的評論作爲答案所以我可以接受並給你信用?再次感謝您的支持,我真的需要第二套眼睛。 – SFun28

回答

4

這將有助於瞭解究竟你正在做...類似這樣的事情可能發生在隨機過程中,先進的擬合方法可能依賴於啓動參數,中斷輸入對象等ñ。 A traceback()也可以幫助,但在並行任務的情況下,traceback()的輸出可能相當不明顯。但實質上,特定輸入和功能的結合會出現問題。

至於錯誤,我希望你注意到結果.6從來沒有包括在聯合收割機中。所以我會先看看task6中究竟發生了什麼,以及爲什麼它不返回任何輸出。

+2

與traceback()一樣,另一個有用的調試工具是設置'options(error = recover)'。這允許您瀏覽變量,如從調用錯誤的函數內部看到的那樣。 – nullglob