在 Visual Studio Code 中使用 R

R 程式語言是一種為統計計算和圖形而設計的動態語言。R 廣泛應用於統計分析、科學計算、機器學習和資料視覺化。

Visual Studio Code 的R 擴充功能支援進階的語法醒目提示、程式碼自動完成、程式碼檢查 (linting)、格式化、與 R 終端機互動、檢視資料、圖形、工作區變數、說明頁面、管理套件以及使用R Markdown 文件。

Overview

入門指南

  1. 安裝 R (>= 3.4.0) 到您的平台。對於 Windows 使用者,建議在安裝過程中勾選 將版本號儲存到登錄檔 (Save version number in registry),以便 R 擴充功能能自動找到 R 執行檔。

  2. 在 R 中安裝 languageserver

    install.packages("languageserver")
    
  3. 安裝 Visual Studio Code 的 R 擴充功能

  4. 建立一個 R 檔案並開始編寫程式碼。

為了增強在 VS Code 中使用 R 的體驗,建議安裝以下軟體和套件:

  • radian:一個現代化的 R 主控台,修正了官方 R 終端機的許多限制,並支援語法醒目提示和自動完成等許多功能。

  • httpgd:一個 R 套件,提供一個圖形裝置,可透過 HTTP 和 WebSockets 非同步地提供 SVG 圖形。Visual Studio Code 的 R 擴充功能之互動式繪圖檢視器需要此套件。

如果您在安裝 R 套件或 Visual Studio Code 的 R 擴充功能時遇到任何問題,請前往安裝說明維基頁面 (Windows | macOS | Linux) 以取得更多詳細資訊。

執行 R 程式碼

執行 R 程式碼就是將程式碼傳送到 R 終端機。在執行 R 程式碼之前,您可以透過命令選擇區 (Command Palette) 中的 R: 建立 R 終端機 (R: Create R terminal) 命令來建立一個 R 終端機。

一旦 R 終端機準備就緒,您可以選取程式碼,或者將游標放在您要執行的程式碼開頭或結尾,按下 (Ctrl+Enter),然後程式碼將被傳送到作用中的 R 終端機。

如果您想執行整個 R 檔案,請在編輯器中開啟該檔案,然後按下 Ctrl+Shift+S,檔案將在作用中的 R 終端機中被載入執行 (sourced)。

有關更進階的用法,例如執行多個 R 終端機或自我管理的 R 終端機,您可以閱讀與 R 終端機互動

程式碼自動完成 (IntelliSense)

R 擴充功能由於 R 語言伺服器的支援,提供了程式碼自動完成和許多其他程式碼編輯功能。自動完成會顯示範圍內和目前 R 工作區中可用的函數和變數,以及來自套件或以註解形式提供的文件。

Code completion

Linting

程式碼檢查 (Linting) 是一項檢查程式碼中警告和潛在錯誤的功能。R 程式碼的檢查功能由lintr 套件提供。您可以透過設定檔,從可用的檢查器 (linters) 列表中進行選擇來自訂它。

Linting

除了程式碼自動完成和程式碼檢查之外,R 擴充功能還支援其他功能,例如程式碼格式化、跳到定義、重新命名符號、尋找參考。閱讀R 語言服務以取得更多詳細資訊。

工作區檢視器

工作區檢視器位於 VS Code 的側邊欄中,包含作用中 R 工作階段中使用的套件和全域變數。在活動列 (Activity bar) 中選取 R 圖示,工作區檢視器和說明頁面檢視器將會出現。這是一種方便的方式來檢視 R 工作區、預覽現有的 R 物件、尋找說明主題並互動式地閱讀說明頁面。

Workspace Viewer

除了工作區檢視器之外,還有資料檢視器、繪圖檢視器和小工具檢視器。閱讀互動式檢視器以取得更多詳細資訊。

偵錯

R 的偵錯功能由R Debugger 擴充功能提供。它支援透過啟動新的 R 處理程序或附加到正在執行的 R 處理程序來偵錯 R 程式碼或 R 專案。

當命中中斷點時,您可以檢視或修改目前選取的堆疊框架 (stack frame) 中的變數,或在堆疊框架中的偵錯主控台 (debug console) 中評估運算式。

閱讀專案的README以取得更多詳細資訊。

後續步驟

本概觀是 Visual Studio Code 的 R 擴充功能之快速介紹。閱讀擴充功能的README以取得詳細的功能列表。

如果您有任何問題、建議或功能請求,請隨時在GitHub 儲存庫上開啟一個 Issue。

如果您想進一步了解 VS Code,請嘗試這些主題:

© . This site is unofficial and not affiliated with Microsoft.