當前位置:
首頁 > 最新 > 初學者如何避免bug:RStudio代碼實時錯誤提示功能

初學者如何避免bug:RStudio代碼實時錯誤提示功能

作者:師爺,R語言中文社區作者,

知乎專欄:

https://zhuanlan.zhihu.com/rstudio

Code Diagnostics

Rstudio對靜態或者動態的代碼有分析的能力,具體的說在編程的過程中,會做一些必要錯誤提示。

通俗的講就是當你寫代碼的時候,系統會自動提示錯誤,並且進行糾正,極大的幫助初學者避免一些不必要的小bug,簡直不要太提心。

啟動診斷

啟動路徑:tools -> Global Options -> Code -> Diagnostics 編輯框:

圖中選項的簡介:

Show Diagnostics for R

是否在R代碼中執行展現行為

Enable diagnostics within R function calls

是否在函數調用的過程中展現診斷結果

例如. dplyr::select(mtcars, mpg, cyl). 如果你在大量使用非標準編寫代碼情況下,切換到此狀態,而且為此導致RStudio不能生成正確的代碼診斷。

調用R語言函數的參數

只在函數中填入部分參數,幫你判斷是否能夠執行代碼。診斷引擎會反饋缺失參數,不匹配參數,部分匹配參數,過多參數等錯誤。

例如,在下面的RStudio檢測到函數add_numbers缺少參數y. 註:無論add_numbers是否在當下的編程環境下。

類似的, missing arguments報告如下 (缺少逗號):

變數沒有定義是否報警

如果當前的變數沒有定義就會提示,診斷引擎會做簡單的語法提示,具有局限性。

(圖中的對象具有局域性)

變數有定義但是沒有使用進行提示

此診斷是針對辨認變數已經被創建,但是沒有使用的情況。常常用於試圖清除舊的代碼,或者其他小的錯誤(你認為需要用,但是後來卻沒有用到)

例如:變數「result」 已經被定義,但是沒有使用或者返回值。

R語言特有的診斷 (例如:空格)

這種診斷規則來自於Hadley Wickham』s style guide 的代碼規則, 並且做出警告,尤其是,診斷引擎試圖會對空格的錯誤用法進行提示。

目前不支持用戶改寫內在診斷邏輯。

對其他語言診斷其他診斷

RStudio也可對其他語言進行診斷 包括 C / C++, JavaScript, Python.

The C / C++ 語言的診斷報告編譯器錯誤並做出資源文本警告。

查看診斷結果

當有診斷結果產生,會在一下兩處進行提示:

在代碼左側「!」標誌對應錯誤行

對應錯誤的下劃線. 如下圖

展現診斷

這個特性控制診斷結果的展現和更新, 診斷可以保存之後呈現或者鍵盤輸入代碼若干時間後顯示。

項目級別診斷

你可以啟動診斷引擎作用在項目文件中的所有R文件上,或者用嚮導菜單,快捷鍵 CMD + ALT + SHIFT + P (CTRL 在Windows):

對項目進行診斷之後,控制台出現診斷結果的Markers框,內容包括所有的錯誤和警告

魔法注釋

RStudio診斷引擎加入魔法注釋來控制每個文件的基礎信息

常用的魔法注釋:

# !diagnostics off -- 不對這個文檔進行診斷

# !diagnostics style=[true/false] -- 對這個文檔切換診斷.

# !diagnostics level=[syntax/core/all] --切換, 嚴重性,

此外,可以對特殊的變數進行特殊的處理:

# !diagnostics suppress=

例如, global_variable沒進行提示, 而other_global_variable卻又如下提示:

Bug 報告

回復RR語言快速入門免費視頻

回復統計統計方法及其在R中的實現

回復用戶畫像民生銀行客戶畫像搭建與應用

回復大數據大數據系列免費視頻教程

回復可視化利用R語言做數據可視化

回複數據挖掘數據挖掘演算法原理解釋與應用

回復機器學習R&Python機器學習入門

喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 R語言中文社區 的精彩文章:

TAG:R語言中文社區 |