一、功能特性展示

之前一直在用 Rstudio 来编写 R,也尝试用过 Pycharm 配置 R 环境。

但是由于现在需求要同时满足 Python,R 和网站要同时开发,为了避免来回切换不同的IDE,重复配置,还有路径一堆麻烦事。

今天我们先介绍在 VSCODE 中配置 R 环境,看看它有什么特性足以让我们更改自己习惯。

1、绘图
mark2、查看及搜索数据
mark

3、多行输出
mark4、鼠标悬停,显示函数文档
mark

5、鼠标悬停,显示变量信息
mark6、格式化代码
mark

二、材料

  • vscode
  • R
  • vscode 插件:
    • R support for Visual Studio Code
    • R LSP Client
  • Radian

三、安装

1、安装 vscode

官网:https://code.visualstudio.com/

2、安装 R

安装时需要注意:

选安装目录时候,需要注意没必要安装在C盘,后续安装包会占用资源。建议在其他盘创建目录,然后以R版本号命名的方式安装R。

比如我在E盘下的R目录:
mark

mark

3、安装插件
R support for Visual Studio Code

这是在 vscode 运行 R 语言的核心插件
mark

R LSP Client

R LSP Client 插件依托于 Language Server Protocol,LSP 可以使编程语言在编辑器上得到语法支持。提供自动补全,代码格式化,帮助文档等功能。
mark

4、Radian

官网称 radian 是一款21世纪的R语言编辑器。

因为radian 是 python编写,首先我们得先有 python 环境,安装参考:https://zhenglei.blog.csdn.net/article/details/88828229。

pip install radian

在 cmd 里输入 radian 查看是否安装正常
mark

四、配置

1、在 VSCODE 右下角进入设置页面
mark

2、根据不同操作系统,比如windows配置时,输入r.rterm.windows,填写 R 或 radian 路径。

如果为了更好的体验,建议配置 radian 的路径。

在 shell 中拿到 radian 路径信息

where radian

比如我的路径是:

mark

r.rterm.windows

mark

3、输入r.br,选中bracketed paste

不勾选,Radian 不会启用
mark

4、输入 r.rterm.option,删除--no-save,--no-restore,添加--no-site-file
mark5、输入r.sessionWatcher,勾选

可以实现绘图IDE,查看dataframe。如果想用原生绘图,取消勾选即可。
mark

6、要实现自动补齐还需要安装:Languageserver

install.packages("languageserver"install.packages("languageserver")

mark

五、测试

1、计算和输出

add <- function(x, y) {
x + y
}

print(add(1, 2))
print(add(1.0e10, 2.0e10))
print(paste("one", NULL))
print(paste(NA, "two"))
print(paste("multi-line", "multi-line")add <- function(x, y) {
x + y
}

print(add(1, 2))
print(add(1.0e10, 2.0e10))
print(paste("one", NULL))
print(paste(NA, "two"))
print(paste("multi-line", "multi-line"))

mark

2、绘图

h <- c(1, 2, 3, 4, 5, 6)
M <- c("A", "B", "C", "D", "E", "F")
barplot(h,
names.arg = M, xlab = "X", ylab = "Y",
col = "#00cec9", main = "Chart", border = "#fdcb6e"
h <- c(1, 2, 3, 4, 5, 6)
M <- c("A", "B", "C", "D", "E", "F")
barplot(h,
names.arg = M, xlab = "X", ylab = "Y",
col = "#00cec9", main = "Chart", border = "#fdcb6e"
)

mark