在学习R的时候,你是否常常为动辄就几十个参数的函数名称和函数而抓狂?你是否往往在语言编程的时候,因为无法熟练地重复使用和打磨以前的代码而苦恼?你是否在看到python的jupyter lab有代码snippet时非常眼馋,迫切希望R中也能拥有如此厉害的操作呢?!
往下看吧!本文将为你介绍R中神奇的snippets,为你完美解决上述三大痛点。
神奇的snippets
首先,让我们来了解一下,什么是Snippet?
Snippet是Rstudio中一种快捷补全代码的方法。官方解释读不懂?那我们直接上例子!
以我们最常见的library函数为例,当我们在脚本区输入“lib”时,就会出现下图所示弹窗:
![a28724af489a71b9158a9c346dbee290.png](https://i-blog.csdnimg.cn/blog_migrate/fb0ddd1ea2d8e020aa6fb7e74b9b9836.png)
这时,只要按下Tab键,刚刚输入的代码就会马上变成“library(package)”
再例如只要输入“req”,就会弹出下图所示的弹窗:
![b583d83e120be3e7f0454b9e723805a7.png](https://i-blog.csdnimg.cn/blog_migrate/d18512b6c4c581d13cf9d1af2b91cb32.png)
按下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,记得悄悄保存图片哦~
![fc92e7da8169ef3a2fb829eeccbae3fc.png](https://i-blog.csdnimg.cn/blog_migrate/e0a80645fdd3cad99b159b6de09a6eda.jpeg)
PART 02
自定义snippets
除了以上系统自带的snippets,我们也可以自定义自己专属的snippet!把我们自己常用的代码片段编写成snippet,可以使日常学习工作中工作效率得到极大的提高哦!
咚咚!敲黑板啦!今天的重头戏来咯!马上就给大家介绍一下,如何自定义snippets。
STEP1
在Rstudio界面寻找 Tools→Global Options...→Code→Edit Snippets
![f1cc99d96a6d3c3d49114248b938f511.png](https://i-blog.csdnimg.cn/blog_migrate/7d92cc4b1caa766e6aa43c0495f93084.png)
进入编辑界面后,我们可以看到许多预设的snippets,并且可以看出,snippets运用在R中,还可以 C/C++, JavaScript等其他的几种计算机语言中。是不是snippets在你心中的地位,又进一步提升了呢?
![c303d8a7603fd7ac3daf30c57f6c98fe.png](https://i-blog.csdnimg.cn/blog_migrate/bbe167856533970b7c0a53cf4a3b4b08.png)
STEP2
在自定义snippets时,snippets的内容需要另起一行,使用Tab键缩进(而不是空格,否则不能识别空格键之后的部分哦!)。如果出现不能识别,可以试试从上一行结束处开始删除空格键。代码段的变量可以用{1:varname}的形式来定义。
是不是有点晕?是不是看不明白?没关系,我们直接上图,手把手教学。
以我自定义的常用的install和library为例:
通常我们在Rstudio中install一个新的package后,还要在手动library,操作起来有点麻烦呢。这时,自定义添加一个il的snippet,就可以轻松地实现安装并加载某个package了。
![3f3862228cc6e47ba257f2d95ec0c82e.png](https://i-blog.csdnimg.cn/blog_migrate/3ee942868c3812eead0d6c699c1b1939.png)
添加自定义snippet后,在脚本区输入“il”,就可以轻松弹出install和library的代码哦!有没有被震惊到~
![291261fac62d9ba07550f63ce2c9710c.png](https://i-blog.csdnimg.cn/blog_migrate/f24cd80b13d3a07904abf767fb784885.png)
★★划重点啦!自定义snippet首先要以snippet开头,其次要写便于记忆的简化命名(如lib),然后预设该snippet应该包含哪些内容,其中需要填写的内容用${}的表示方法。此处需要注意,预设snippets 的${}里面的内容通常是"数字:单词"或0这两种形式。“:” 后面的单词代表提示的信息,例如library里面的package;数字0就意味着没有预设的提示信息。你学会了嘛?
PART 03
用Snippet执行R代码
在日常工作中,我们也可以在snippets中执行R代码,可以在snippet的任何地方使用`r expr`,当snippet是扩展代码段的时候,R代码就会被执行,并且结果会被插入到文件中。如下图,以下的snippet就可用于插入更新代码最后修改的时间,又被厉害到了吧!
![862cfa985083362ceca8135493e68d73.png](https://i-blog.csdnimg.cn/blog_migrate/2f8b1caa5a99ba770e750598a4184b8a.png)
在脚本区输入upd后Tab一下,就可以立马得出现在的时间!
![9ffdf1c9ff0643af1d88c9027f551de1.png](https://i-blog.csdnimg.cn/blog_migrate/15020e883c7bd598222656f01cd54e65.png)
看完本文,你是不是也很期待,想快点上手感受一下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
![2e35e7966536abe111015c71484da81e.png](https://i-blog.csdnimg.cn/blog_migrate/4fe04a8aaedb18fe167f0e3cac07bec1.jpeg)
![624cf09fbea84b3056abea03d4893345.png](https://i-blog.csdnimg.cn/blog_migrate/237edb76f458534fdc6af9ed1c17950b.jpeg)
文字/徐晨悦
排版/王新怡
指导老师/朱振涛
- END -