2010-01-22 43 views
2

這是黑暗中的一點點,但是我有一個腳本完全符合我期望的腳本,但是,在腳本的最後,我得到一個錯誤像這樣:for循環後的R中的錯誤消息

Error in `[<-.data.frame`(`*tmp*`, "label", value = c(1L, 0L)) : 
    replacement has 2 rows, data has 0 

在回答來看,我正在尋找關於如何跟蹤R中像這樣的錯誤一般的建議,使用循環和雙重檢查的最佳實踐是他們「通過由它」。

任何想法,建議,或過去的經驗,可能會降低或通知這樣的錯誤消息?

回答

5

我已經收錄了我對調試實踐的評論in this related question。但是,關於您在此處顯示的特定消息:這意味着您正試圖將2行寫入某個具有0行的數據集。這樣的事情:

x <- data.frame(y=NULL) 
x$y <- 1:2 
+0

traceback()的作品就像一個魅力,我發現錯誤。爲此歡呼。 – 2010-01-22 17:07:20

+1

太好了。僅供參考:我不認爲追溯能夠正確處理所有事情(例如S4或Lpply)。 – Shane 2010-01-22 17:09:06

+0

謝謝,我一定會記住這一點。 – 2010-01-22 17:09:42