在学习R的时候,你是否常常为动辄就几十个参数的函数名称和函数而抓狂?你是否往往在语言编程的时候,因为无法熟练地重复使用和打磨以前的代码而苦恼?你是否在看到python的jupyter lab有代码snippet时非常眼馋,迫切希望R中也能拥有如此厉害的操作呢?!
往下看吧!本文将为你介绍R中神奇的snippets,为你完美解决上述三大痛点。
神奇的snippets
首先,让我们来了解一下,什么是Snippet?
Snippet是Rstudio中一种快捷补全代码的方法。官方解释读不懂?那我们直接上例子!
以我们最常见的library函数为例,当我们在脚本区输入“lib”时,就会出现下图所示弹窗:
这时,只要按下Tab键,刚刚输入的代码就会马上变成“library(package)”
再例如只要输入“req”,就会弹出下图所示的弹窗:
按下Tab键,刚刚输入的代码就会马上变成“require(package)”而且光标停在package字符串,你可以直接将package改为你想要加载的程序包的名字。
snippet
的代码实战
怎么样,是不是很amazing?是不是很interesting?是不是很想即刻get如此神奇的技能?!下面,就让我为大家详细讲述,如何使用Rstudio中内置的snippets,以及如何自定义自己常用的snippets。
PART 01
插入snippets
如果你已经为你的snippets输入了相应的字符序列,并且想要不通过补全列表立刻插入,这时,只需按Shift+Tab键就可以轻松弹出你想看到的结果。在这里,我们需要注意一点:在RMarkdown文件中的snippets,必须使用Shift+Tab键,因为在Markdown编辑模式下没有标准的制表符完成功能,否则,snippet的强大功能就会不翼而飞。
在这里,给大家列举一下Rstudio中其他常见的内置snippets,记得悄悄保存图片哦~
PART 02
自定义snippets
除了以上系统自带的snippets,我们也可以自定义自己专属的snippet!把我们自己常用的代码片段编写成snippet,可以使日常学习工作中工作效率得到极大的提高哦!
咚咚!敲黑板啦!今天的重头戏来咯!马上就给大家介绍一下,如何自定义snippets。
STEP1
在Rstudio界面寻找 Tools→Global Options...→Code→Edit Snippets
进入编辑界面后,我们可以看到许多预设的snippets,并且可以看出,snippets运用在R中,还可以 C/C++, JavaScript等其他的几种计算机语言中。是不是snippets在你心中的地位,又进一步提升了呢?
STEP2
在自定义snippets时,snippets的内容需要另起一行,使用Tab键缩进(而不是空格,否则不能识别空格键之后的部分哦!)。如果出现不能识别,可以试试从上一行结束处开始删除空格键。代码段的变量可以用{1:varname}的形式来定义。
是不是有点晕?是不是看不明白?没关系,我们直接上图,手把手教学。
以我自定义的常用的install和library为例:
通常我们在Rstudio中install一个新的package后,还要在手动library,操作起来有点麻烦呢。这时,自定义添加一个il的snippet,就可以轻松地实现安装并加载某个package了。
添加自定义snippet后,在脚本区输入“il”,就可以轻松弹出install和library的代码哦!有没有被震惊到~
★★划重点啦!自定义snippet首先要以snippet开头,其次要写便于记忆的简化命名(如lib),然后预设该snippet应该包含哪些内容,其中需要填写的内容用${}的表示方法。此处需要注意,预设snippets 的${}里面的内容通常是"数字:单词"或0这两种形式。“:” 后面的单词代表提示的信息,例如library里面的package;数字0就意味着没有预设的提示信息。你学会了嘛?
PART 03
用Snippet执行R代码
在日常工作中,我们也可以在snippets中执行R代码,可以在snippet的任何地方使用`r expr`,当snippet是扩展代码段的时候,R代码就会被执行,并且结果会被插入到文件中。如下图,以下的snippet就可用于插入更新代码最后修改的时间,又被厉害到了吧!
在脚本区输入upd后Tab一下,就可以立马得出现在的时间!
看完本文,你是不是也很期待,想快点上手感受一下snippet的强大功能呢?那还等什么,赶紧打开你的Rstudio试试吧!
心得
体会
我在学习使用snippet的时候,又一次深切体会到了R语言的神奇。自定义snippets,可以在以后的使用中,快速弹出我们所需的代码段,省事省力,还不会出错,重复使用和打磨以前的代码段也变得更加容易,大大提高了学习、工作效率。不仅如此,我对R语言的兴趣也得到了提高,相信在以后的学习过程中,我会更加乐于去挖掘R语言中其他的神秘功能。
参考
文献
发布方:RStudio扩展 文章中文名称:《RStudio片段》
https://rstudio.github.io/rstudio-extensions/rstudio_snippets.html
作者:JJ阿莱尔 文章中文名:《代码段》 发布时间:2020年9月26日
https://support.rstudio.com/hc/en-us/articles/204463668-Code-Snippets?version=1.2.1114&mode=desktop
文字/徐晨悦
排版/王新怡
指导老师/朱振涛
- END -