非常基本的問題。但我無法將其應用於我的代碼。因此,尋求幫助在這裏R中的誘捕錯誤
我得到下面提到的錯誤,同時運行該R代碼
knn.pred <- knn(tdm.stack.nl_train, tdm.stack.nl_Test, tdm.cand_train, prob = TRUE)
> Error in knn(tdm.stack.nl_train, tdm.stack.nl_Test, tdm.cand_train, prob = TRUE) :
> dims of 'test' and 'train' differ.
我想下面給出打印錯誤消息。但是我無法做到這一點。我不擅長編寫函數..請幫忙。
out <- tryCatch(when error = {print('New words seen in testing data')})
非常感謝你。這工作。順便說一下,你能解釋一下這個函數(e)在這裏意味着什麼?再次感謝。 – Arun
@阿倫不客氣,很高興我能幫上忙。函數(e)'位稱爲[匿名函數](http://adv-r.had.co.nz/Functional-programming.html)。參數錯誤需要一個函數,當'tryCatch'中發生錯誤時將調用該函數。既然我們希望它停止並打印出一個特定的錯誤,我們通過使用一個匿名函數來完成它。匿名函數實際上是一個正常的函數,唯一的例外是它沒有名字(因此是匿名的)。 – LyzandeR
而'函數(e)'中的'e'是任意的。基本上它可以是任何你喜歡的。如果你喜歡,你可以使用'function(whatever)'。人們通常使用'e',因爲它是'error'的第一個字母。 – LyzandeR