R語言的各種報錯及其解決方法

九茶發表於2015-08-06

前言:

人不能在同個地方栽兩次跟頭,那樣的生活效率太低。所以我一直以來都保持著隨手記錄的習慣。現在把近半個月來遇到的關於R語言的錯誤分享一下,希望能幫助到一些朋友,同時也希望各位朋友把遇到的已解決的、未解決的錯誤提出來一下,完善彼此的知識點,謝謝!


目錄:

(更多內容請見:R、ggplot2、shiny 彙總


正文:

連線資料庫報錯:negative length vectors are not allowed

程式碼截圖:
這裡寫圖片描述

報錯截圖:
這裡寫圖片描述

解決方案:
這裡寫圖片描述
連結:http://stackoverflow.com/questions/3407015/querying-oracle-db-from-revolution-r-using-rodbc


連線資料庫報錯:first argument is not an open RODBC channel

報錯截圖:
這裡寫圖片描述

可能原因:資料庫沒有連線上。可以用PL/SQL執行一下SQL語句,看能否獲取到資料庫。如果不能拿到資料的話就可能是網路問題,或者沒有連線到資料庫。如果可以拿到資料的話就檢查一下資料來源,因為這裡R是通過資料來源RODBC連線資料庫的。


連線資料庫報錯:incorrect number of dimensions

報錯截圖:
這裡寫圖片描述

可能原因:從資料庫拿資料的SQL語句可能錯了,輸出一下拿回來的資料,如果為空則是很可能就錯在SQL上面。例如上圖依據時間查詢資料時,在where中插入時間限定的SQL語句錯了。


RStudio一執行就重啟:R Session Aborted

報錯截圖:
這裡寫圖片描述

解決方案:升級一下Rcpp包就行了。


Error: argument is not interpretable as logical

報錯截圖:
這裡寫圖片描述

可能原因:資料處理出了問題,沒有對NA的值作特別處理。例如在一個判斷語句中判斷一個值是否為空,但它如果為NA(缺失值)的話將無法判斷。
解決方法是在判斷語句之前加一個判斷它是否為NA,下面是一個例子:
這裡寫圖片描述


RStudio無法除錯,下斷點無效!

可能原因:
1、RStudio版本需要在0.89.274以上才支援除錯
2、使用shiny包的APP好像不支援斷點除錯,但我有時候又可以,鬱悶。。以下是官方解釋:
這裡寫圖片描述

解決方案:可以在需要下斷點的地方加上一句 “browser()”,功能和下斷點類似。


編碼錯誤:invalid multibyte character in parcer at line 35

報錯截圖:
這裡寫圖片描述

可能原因:可能是中文編碼錯誤,這個是我用source(“DataProcessing.R”)的時候出現的錯誤。可以在source裡面加上編碼方式。
例如:source(“DataProcessing.R”, encoding = “utf-8”)




歡迎各位把遇到的報錯分享出來!另外,個人覺得遇到報錯資訊可以翻牆去搜,一般都比較容易找到。


轉載請註明出處,謝謝!(原文連結:http://blog.csdn.net/bone_ace/article/details/47324233

相關文章