發表文章

目前顯示的是 10月, 2013的文章

R中Try and Catch的寫法

圖片
在R裡的Try and Catch可能比較少人用到 因為R code出現錯誤時不會導致R整個停機 只會出現錯誤訊息 而且可以繼續運作 但是因為我的系統是用Java去call R,R如果有error會停止運作然後害我整個系統死機 所以我需要一個方法可以先楨測我的R code有沒有error,如果有錯就不往下執行了 範例如下: 如果我直接在R裡面執行 a<-'abc' b<-1 c<-b/a 會看直接看到錯誤,因為我不能把字串去除以一個數值 所以我加了try and catch之後 Erroresult<- tryCatch({ a<-'abc' b<-1 c<-b/a }, warning = function(war) { print(paste("MY_WARNING: ",war)) }, error = function(err) { print(paste("MY_ERROR: ",err)) }, finally = { print(paste("End Try&Catch")) }) 結果就會像這樣了,Error已經不是紅色,而是一個字串輸出,可以像我一樣把tryCatch的結果再另存到一個變數,例如Erroresult,這樣你就可以把這個error message存著 Try and Catch的架構像這樣,其中warning,error,finally的結構一定要有,不然會報錯 tryCatch({ #要執行的指令放這裡 },warning = function(war){ print(paste("MY_WARNING: ",war)) #如果有warning則輸出warning,"MY_WARNING: "這一行可以自己改 },error = function(err) { print(paste("MY_ERROR: ",err)) #如果有error則輸出error,"