如何在 Visual Studio Code 中運(yùn)行 R語(yǔ)言
譯文【51CTO.com快譯】如果你是一個(gè)忠誠(chéng)的 RStudio 用戶,你可能從來(lái)沒(méi)有嘗試過(guò)其他 R語(yǔ)言(甚至 Python)編輯器的想法。但是,如果你想試一下GitHub Copilot(GitHub新的基于 AI 的編碼助手),則需要在 Microsoft 的 Visual Studio Code 中編寫(xiě)代碼。目前,GitHub Copilot 只在微軟的編輯器中可用——考慮到微軟擁有 GitHub,這并不奇怪。
GitHub Copilot 使用 AI工作時(shí)建議代碼行。它沒(méi)有 針對(duì)R語(yǔ)言進(jìn)行優(yōu)化,但仍然會(huì)推薦 R 語(yǔ)言代碼。微軟的云倡導(dǎo)者Davidsmith在 推特上發(fā)布了一個(gè)簡(jiǎn)短的演示,表明 GitHub Copilot 測(cè)試版還可以提供 tidyverse 代碼以及基礎(chǔ) R語(yǔ)言。
為 R 語(yǔ)言設(shè)置 Visual Studio Code
難的是,Visual Studio代碼設(shè)置到有R語(yǔ)言的有點(diǎn)復(fù)雜,并不像安裝RStudio那樣簡(jiǎn)單。這是因?yàn)?VSCode 有能力支持?jǐn)?shù)百種編程語(yǔ)言的能力,遠(yuǎn)遠(yuǎn)超過(guò) RStudio。默認(rèn)情況下,提供所有的功能會(huì)使軟件變得負(fù)載。因此,VS Code 是模式化的,大多數(shù)用戶必須安裝擴(kuò)展才能針對(duì)特定用例優(yōu)化 VS Code。
對(duì)于 R 語(yǔ)言用戶,這意味著要安裝幾個(gè)擴(kuò)展并且調(diào)整一些設(shè)置。
顯然,第一步是下載 Visual Studio Code, VS Code 是免費(fèi)的,可用于 Windows、Mac 和 Linux。像安裝任何其他軟件包一樣安裝它。
接下來(lái)是添加 R語(yǔ)言 支持。在 Visual Studio Code 左側(cè)的“activity導(dǎo)航欄上,單擊帶有四個(gè)方塊的圖標(biāo)以搜索擴(kuò)展名。搜索“R 語(yǔ)言”,是因?yàn)樗阉?ldquo;R”會(huì)返回大量不相關(guān)的結(jié)果。Smith為VisualStudio代碼推薦了UyukiUeda的R擴(kuò)展,也就是vscode-R,它提供了基本的R語(yǔ)言支持(運(yùn)行、代碼片段、查看器),顯示為第一個(gè)搜索結(jié)果。
單擊擴(kuò)展圖標(biāo)以搜索 R 語(yǔ)言擴(kuò)展
單擊“install”按鈕后,將會(huì)看到一個(gè)屏幕,其中包含有關(guān)如何配置和運(yùn)行擴(kuò)展的信息,這是十分重要的。
安裝擴(kuò)展程序后,將會(huì)看到一個(gè)屏幕,其中包含有關(guān)如何優(yōu)化和使用擴(kuò)展程序的詳細(xì)信息
通過(guò)閱讀vscode-R項(xiàng)目的githubwiki頁(yè)面和GitHub主頁(yè),下面是通過(guò)哪些方法可以改善R語(yǔ)言的操作。
第一個(gè)建議是使用弧度終端(radian terminal)。這不是 VS Code 擴(kuò)展,而是用 Python 編寫(xiě)的應(yīng)用程序——這意味著系統(tǒng)需要安裝 Python 才能運(yùn)行 radian。我已經(jīng)在我的 Mac 上安裝了 Python 和 conda 包管理器,所以我對(duì)radian使用了這個(gè)安裝命令:
- conda install -c conda-forge radian
對(duì)于使用流行的 Python 包管理器的用戶,還有一個(gè) pip install 命令:
- pip install -U radian
如果系統(tǒng)尚未安裝 Python,請(qǐng)觀看下面的視頻,以獲取有關(guān)如何安裝 Python 以與 R 和 RStudio 一起使用的簡(jiǎn)單說(shuō)明。
vscode-R 擴(kuò)展還有其他兩個(gè)推薦的安裝:languageserver 和 vscode-r-lsp。
languageserver 是一個(gè)常規(guī)的 R 包,可以回到 RStudio 或 R 終端,用install.packages(“languageserver”)以通常的方式安裝它。
要安裝 vscode-r-lsp,可以返回到Visual Studio Code 窗口,并從 VS Code 擴(kuò)展市場(chǎng)安裝它,也可以單擊vscode-r-lsp 網(wǎng)頁(yè)上的安裝按鈕 。
vscode-R 擴(kuò)展的 wiki 還建議安裝另外兩個(gè) R 語(yǔ)言包:jsonlite 和 rlang。如果不按照上述操作安裝,jsonlite 和 rlang 也可以通過(guò)install.packages()從CRAN安裝install.packages().
調(diào)整 R 語(yǔ)言的 Visual Studio Code 設(shè)置
vscode-R 擴(kuò)展指令還需要“啟用 config r.bracketedPaste”。這意味著我們需要進(jìn)入 VS Code 設(shè)置,并打開(kāi)該設(shè)置(如果尚未啟用)。
更改 VS Code 設(shè)置的最簡(jiǎn)單方法是打開(kāi)設(shè)置用戶界面。(另一個(gè)選項(xiàng)是編輯底層設(shè)置 JSON 文件)。要訪問(wèn)設(shè)置 UI,請(qǐng)轉(zhuǎn)到Windows 上的文件 > 首選項(xiàng) > 設(shè)置或Mac 上的代碼 > 首選項(xiàng) > 設(shè)置。然后可以搜索“bracketedPaste”并單擊以啟用它。
同時(shí),還可以使用 Visual Studio Code 的命令面板訪問(wèn)設(shè)置 UI。命令面板是一種通過(guò)鍵入而不是指向和單擊菜單來(lái)訪問(wèn)各種 VS Code 功能的便捷方式。許多軟件開(kāi)發(fā)環(huán)境都有命令調(diào)色板,了解它們是十分有用的。在 VS Code 中,可以使用 F1 鍵或 Windows 上的 Control-Shift-P 組合鍵或 Mac 上的 Command-Shift-P 組合鍵來(lái)調(diào)出命令面板。
可以使用命令面板訪問(wèn) VS Code 設(shè)置選項(xiàng)
打開(kāi)命令面板選項(xiàng)后,可以通過(guò)鍵入Open Settings來(lái)獲取VS Code 設(shè)置. 可以會(huì)看到打開(kāi)圖形 UI 或底層 JSON 文件的選項(xiàng)。
vscode-R 擴(kuò)展的文檔中提到了一些其他要更新的設(shè)置。一個(gè)是啟用R Session Watcher.。打開(kāi)的另一個(gè)設(shè)置是R: Always Use ActiveTerminal. 這意味著所有 R 語(yǔ)言代碼都將被發(fā)送到當(dāng)前的活動(dòng)終端,即使它不是 R 終端,也不是啟動(dòng)一個(gè)新的 R 終端,這解決了在 Mac 上遇到的問(wèn)題。但是,在 VS Code 中的每個(gè) R 會(huì)話開(kāi)始時(shí),都需要在嘗試運(yùn)行 R 語(yǔ)言之前在“常規(guī)”(非 R)終端中鍵入“radian。
由此可見(jiàn),這比RStudio 安裝要復(fù)雜一些。
在 Visual Studio Code 中編寫(xiě)和運(yùn)行R語(yǔ)言代碼
vscode-R 擴(kuò)展說(shuō)明建議用戶在使用vscode-R時(shí)打開(kāi)一個(gè) 文件夾,而不僅僅是創(chuàng)建一個(gè)新文件??梢酝ㄟ^(guò)進(jìn)入File > Add Folder to Workspace來(lái)打開(kāi)文件夾。完成此操作后,可以使用左側(cè)活動(dòng)導(dǎo)航欄頂部的“資源管理器”圖標(biāo)查看可用文件。
如果想運(yùn)行代碼又想編寫(xiě)代碼,那么設(shè)置會(huì)話的另一個(gè)步驟是:打開(kāi)一個(gè)“常規(guī)”非 R 終端,然后通過(guò)鍵入radian來(lái)啟動(dòng)R的radian終端。要做到這一點(diǎn),可以轉(zhuǎn)到頂部菜單和Terminal > New Terminal。一旦輸入radian終端,radianr終端就會(huì)啟動(dòng)。
通過(guò)在 Windows 上按 Control-Enter 或在 Mac 上按 Command-Enter 來(lái)可以運(yùn)行一行代碼或選定的多行代碼。這與 RStudio 非常相似。
不過(guò),VS Code 中的“help”與 RStudio 中的“help”略有不同。使用help()或?幫助快捷方式看起來(lái)更像是 Unix 幫助——需要鍵入q在查看后退出。
將鼠標(biāo)懸停在 ggplot2 的 geom_bar() 等函數(shù)上,VS Code 將返回help文件信息
但是,如果將鼠標(biāo)懸停在某個(gè)函數(shù)上,無(wú)需鍵入任何內(nèi)容即可獲得一些幫助信息,操作非常方便。
懸停也適用于定義的變量。(可以在本文頂部嵌入的視頻中了解其工作原理。)
也可以通過(guò)運(yùn)行g(shù)gplot2等圖形代碼在Visual Studio Code中預(yù)覽R圖形,生成的圖形會(huì)在新窗口中彈出。
在 R 腳本中使用顏色名稱或十六進(jìn)制代碼,VS Code 將顯示一個(gè)帶有該顏色的小框,單擊該框,它會(huì)變成一個(gè)顏色選擇器
VS Code 有一個(gè)很強(qiáng)的 R dataviz 功能:當(dāng)你在 R 代碼中包含顏色的名稱或十六進(jìn)制代碼時(shí),會(huì)彈出一個(gè)顯示該顏色的小框,該框還可以用作顏色選擇器。單擊它,可以選擇任何其他顏色,新的顏色十六進(jìn)制代碼將替換代碼中的舊顏色。也可以在上面的視頻中看到這一點(diǎn)。
Visual Studio Code 中的 R語(yǔ)言代碼片段
最后一點(diǎn):不能使用沒(méi)有代碼片段的代碼編輯器。代碼段是存儲(chǔ)的代碼塊,通過(guò)鍵入代碼段的縮寫(xiě)很容易重用。vscode-R擴(kuò)展中包含了一些R代碼段,但是也可以創(chuàng)建自己的代碼段。
第一次進(jìn)入Code > Preferences > User Snippets并選擇 R 時(shí),會(huì)自動(dòng)生成一個(gè)R Snippets JSON文件?,F(xiàn)在,如果轉(zhuǎn)到Code > Preferences > User Snippets,就可以打開(kāi) r.json 片段文件,編輯舊片段或添加新片段。
以下是在 VS Code 中創(chuàng)建代碼段的語(yǔ)法:
- "Snippet Title": {
- "prefix": "what_i_type_to_trigger_snippet",
- "body": [
- "my R code here;",
- "myfun(${1:argument_label} #example code"
- ],
- "description": "Optional description for my snippet"
- }
下面是創(chuàng)建帶有藍(lán)色條形的基本 ggplot2 條形圖的片段示例。
- "Basic bar plot blue": {
- "prefix": "myg_barplot_blue",
- "body": [
- "ggplot(${1:mydata}, aes(x = ${2:myxcol}, y = ${3:myycol})) +",
- "geom_bar(stat='identity', color = 'black', fill='#0072B2')"
- ],
- "description": "Basic ggplot bar plot with blue bars outlined in black"
- }
美元符號(hào)大括號(hào)“$”是可以通過(guò)制表符填充的變量。
RStudio 也有代碼片段。兩種代碼編輯器都可以在開(kāi)始鍵入片段縮寫(xiě)時(shí)查看可用的片段。但是,VS Code 還允許使用命令面板中的“插入代碼段”命令查看代碼段的完整列表——只需按 F1 鍵,然后鍵入“插入代碼段”。
關(guān)于使用在 Visual Studio Code編寫(xiě) R語(yǔ)言?
Visual Studio Code 有一些非常有用的功能,對(duì)于某些代碼繁重的項(xiàng)目,函數(shù)和變量彈出窗口會(huì)派上用。
我非常喜歡 VS Code 中查看我所有代碼段的能力,包括標(biāo)題和可選描述。
不過(guò),我會(huì)傾向于喜歡使用 RStudio,尤其是對(duì)于 R語(yǔ)言特定的任務(wù),如 R Markdown 文檔和 Shiny 應(yīng)用程序。但是如果當(dāng)我訪問(wèn) GitHub Copilot 時(shí),會(huì)選擇使用Visual Studio Code軟件。
要了解更多的R技巧,請(qǐng)?jiān)L問(wèn)InfoWorld使用R頁(yè)面進(jìn)行更多操作。
【51CTO譯稿,合作站點(diǎn)轉(zhuǎn)載請(qǐng)注明原文譯者和出處為51CTO.com】