初学者如何避免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是否在当下的编程环境下。
变量没有定义是否报警
变量有定义但是没有使用进行提示
此诊断是针对辨认变量已经被创建,但是没有使用的情况。常常用于试图清除旧的代码,或者其他小的错误(你认为需要用,但是后来却没有用到)
例如:变量“result” 已经被定义,但是没有使用或者返回值。
R语言特有的诊断 (例如:空格)
这种诊断规则来自于Hadley Wickham’s style guide 的代码规则, 并且做出警告,尤其是,诊断引擎试图会对空格的错误用法进行提示。
对其他语言诊断其他诊断
RStudio也可对其他语言进行诊断 包括 C / C++, JavaScript, Python.
The C / C++ 语言的诊断报告编译器错误并做出资源文本警告。
查看诊断结果
当有诊断结果产生,会在一下两处进行提示:
在代码左侧“!”标志对应错误行
对应错误的下划线. 如下图
展现诊断
这个特性控制诊断结果的展现和更新, 诊断可以保存之后呈现或者键盘输入代码若干时间后显示。
项目级别诊断
你可以启动诊断引擎作用在项目文件中的所有R文件上,或者用向导菜单,快捷键 CMD + ALT + SHIFT + P (CTRL 在Windows):
魔法注释
RStudio诊断引擎加入魔法注释来控制每个文件的基础信息
常用的魔法注释:
# !diagnostics off -- 不对这个文档进行诊断
# !diagnostics style=[true/false] -- 对这个文档切换诊断.
# !diagnostics level=[syntax/core/all] --切换, 严重性,
此外,可以对特殊的变量进行特殊的处理:
# !diagnostics suppress=<comma-separated list of variables>
例如, global_variable没进行提示, 而other_global_variable却又如下提示:
Bug 报告
R语言的诊断具有局限性,如有bug请联系: support.rstudio.com.
公众号后台回复关键字即可学习
回复 R R语言快速入门免费视频
回复 统计 统计方法及其在R中的实现
回复 用户画像 民生银行客户画像搭建与应用
回复 大数据 大数据系列免费视频教程
回复 可视化 利用R语言做数据可视化
回复 数据挖掘 数据挖掘算法原理解释与应用
回复 机器学习 R&Python机器学习入门