有时候各位使用R的用户不知道会不会有这样的感觉,visual studio和Rstudio由于负载过重,在打开或者加载R script时会出现加载过慢的情况,但对于很多数据工作者来说,variable inspector和data view这类的数据可视化功能必不可少,而visual studio和Rstudio在这方面做得可以说是非常完善。在这时候笔者就想到了visual studio code,毕竟作为宇宙最强IDE的减配和开源版本(这里形容可能不太准确),各种语言相应的开发插件众多。更加让笔者惊喜的是,目前vscode-R一直处于开发阶段,并且在最近的1.2.0版本结合了vscode关于web view的API,添加了R session watcher——一个集成的数据可视化构架,并且在1.21中完善了windows系统下的extension的bug。我们来看看集成的viewer会有什么样的效果:
整体看起来效果还是非常不错的,开发者在整体上还是保留了Rstudio和visual studio中对于View()这个函数的配置,还在此基础上添加了search功能,此外对Rshiny可视化的支持也非常棒,具体可以见:https://github.com/Ikuyadeu/vscode-R。
“
FBI WARNING: visual studio code对R的配置显然没有Rstudio和visual studio那么智(傻)能(瓜),需要先装好python,慎入!!!
”
具体配置
一
首先下载visual studio code
二
在visual studio code中下载R和R LSP client两个extension
R extension作为基础的R语言插件,R LSP client作为代码编写时函数提示的辅助工具。
三
安装radian
visual studio code这两个extension由于不存在R console的配置优化,在这里需要借助python中的R interactive窗口——radian,用pip install进行安装。
▶ pip install radian
四
在R中安装languageserver和jsonlite
R LSP client需要借助languageserver实现函数的智能识别,R session watcher需要借助jsonlite来做数据呈现。
▶ install.pacakges("languageserver")
▶ install.packages("jsonlite")
五
在R和R LSP client当中进行配置
R LSP client的配置
Path中添加R的执行文件的路径,当然也可以选择radian.exe的路径(该路径存在于python的scripts文件夹中)。
R extension的配置
1
Option中删除前两个,--no-save和--no-restore
2
在文件中找到Rprofile.site文件,编辑脚本,插入以下这段代码
▶ source(file.path(if (.Platform$OS.type == "windows") file.path(Sys.getenv("HOMEDRIVE"), Sys.getenv("HOMEPATH")) else Sys.getenv("HOME"), ".vscode-R", "init.R"))
一般来说Rprofile.site文件存在于.../R/etc路径中
3
勾选vscode-R中的Enable R session watcher
4
勾选Bracket Paste与Always Use Active Terminal
5
为保证一切修改成功,快捷键Ctrl + Shift + P,运行Reload window
6
打开Terminal中输入radian此时就可以运行R script,并且用View()函数浏览数据、环境中的变量以及图片
让R session watcher完全启用的注意事项:
注1:
Windows用户如选择Rterm路径的情况,并不勾选Always Use Active Terminal,令命令直接在新建的R interactive中运行的话,则会出现R session watcher不启用的状况,data和plot的review窗口则会自动调用自身gui所带的review窗口,以在windows中选择radian.exe路径为例:
注2:
需要选择file->open folder来打开一个R文件,不能够以桌面路径作为terminal运行的根目录。因为此文件夹存储每一次的vscode-R临时环境,在这样的条件下才能在此folder中产生一个临时环境,让vscode-R识别一个临时环境,从而让R session watcher的临时文件写入:
上图为运行vscode时窗口底层的选项,只有类似R:6028这样的信号出现,才表明R session watcher才能真正运行。
上图中我们可以看到,这样一个临时的缓存文件夹被保存在当前的文件夹里面,这个文件夹编号与之前图中临时环境编号一致,这样才能查看数据。
以上两点非常重要,笔者也是被坑了很久,才最终发现这两个关键点是运行R session watcher的关键。还是期待以后的开发者能够把这项功能开发的更加智能一些,毕竟还是在experimental阶段,未来的开发是值得期待的。