Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
11
Help us understand the problem. What is going on with this article?
@Ikuyadeu

Visual Studio Codeを使ったR言語開発環境の利用ガイド (応用編)

はじめに

データサイエンス需要の高まりに比例してRの需要も高騰しています.本記事では広く利用されている Visual Studio Code(以下,VSCode) においてR言語を利用するための環境設定方法を紹介いたします.
2年前に投稿した記事ではVS CodeにおいてRを使うための拡張機能であるvscode-rの基本的な機能を紹介しました.これからVS CodeでRを使ってみようかなという方は参考になれば幸いです.本記事ではその後二年間で改善・追加された機能の紹介を雑多に行います.

本記事の想定読者

  • すでにvscode-rのユーザーでより機能を使いこなしたい人
  • R Studio ユーザーでVS Codeに環境を移したい人

を想定しています.

その他

は関連記事等をご参照ください.

本記事で紹介する機能

かなり雑多ですが,それぞれ独立していますので気になったとこだけ順番に読めます.

コード補完機能の有効化

R EditorSupportという団体によって補完機能が実装されました.

以下の手順で利用できます.

  1. R LSP Clientをインストールする
  2. R Language Serverを以下のRコマンドによりインストールする.
install.packages("languageserver")

または,

devtools::install_github("REditorSupport/languageserver")
  1. VS Codeの設定を開き,利用しているOSに合わせてr.rpath.windows, r.rpath.mac, r.rpath.linuxのいずれかにRをインストールしたパスを入力し,VS Codeを再起動する.このパスはvscode-rで利用しているパスと同じものです.VS Codeの設定方法についてはこちらの記事をご参照ください

データ,グラフ情報の表示

標準設定ではグラフ表示は別ウインドウで表示されていましたが,設定を編集することでR Studioのようにグラフ操作が行えるようになります.

  1. VS Codeの 設定: "r.sessionWatcher"trueに編集し,VS Codeを再起動する.
  2. データやグラフを表示するソースコードを記述し実行する.
  3. エディタのウィンドウとしてグラフが表示される

利用例: 少し特殊なレイアウトでソースコードを左,ターミナルを右に設定しています.

グラフ表示動作例

R StudioのアドインをVS Codeで使う

rstudioapiのエミューレーションを使うことで一部のRStudioアドインが利用可能です. 特にドキュメント検査・操作関連のアドインは比較的安定して利用できるそうです.

1. R Studio アドインサポートの有効化

.Rprofileファイルにoptions(vsc.rstudioapi = TRUE)を追記します.

2. セッションの再起動

Rコマンドで .vsc.attach() またはrstudioapi::restartSession()を実行する

3. アドインの実行

アドインを実行するには主に2つの方法があります.

  1. F1キーでコマンド入力バーを出し,コマンド R: Launch RStudio Addinを実行する.このコマンドは "r.lauchAddinPicker"としてショートカットキーにも対応できます.
  2. キーバインドを用いる.対応したアドインはアドインパッケージのinst/rstudion/addins.dcfから確認できます.例として選択範囲にReprexというアドインを実行する場合は以下のキーバインドで利用できます.
{
    "description": "reprex selection",
    "key": "ctrl+;",
    "command": "r.runCommand",
    "when": "editorTextFocus",
    "args": "reprex::reprex_selection"
}

利用スクリーンショット
利用スクリーンショット

動作確認済みパッケージリスト

  • {datapasta} dev バージョン
  • {reprex}
  • {fnmate}
  • {equisse}
  • {remedy}
  • {AlignAssign}
  • {blogdown}: 利用時はLightテーマを使ってください
  • {docthis}
  • {sinew}
  • {prefixer}
  • {gistfo}
  • {citr}
  • {styler}

実装済み{rstudioapi}関数

上記に載っていないプラグインを利用する場合はこれらの関数を利用しているか確認してください.

  • getActiveDocumentContext
  • getSourceEditorContext
  • isAvailable
  • verifyAvailable
  • insertText
  • modifyRange
  • readPreference
  • readRStudioPreference
  • hasFun
  • findFun
  • showDialog
  • navigateToFile
  • setSelectionRanges
  • setCursorPosition
  • setDocumentContents
  • documentSave
  • documentId
  • documentPath
  • documentSaveAll
  • documentNew
  • getActiveProject
  • restartSession
  • viewer

Rに対応したJupyter Notebookを VS Code で使う

VS CodeのJupyter Notebook拡張機能ではPythonのみをサポートしていましたが,開発版のVS Code限定でR, Julia, Scalaのサポートも利用可能になりました.
今回はRにしぼって利用方法を紹介いたします.
この機能はvscode-Rを必要としません.

  1. VS CodeのInsiderバージョン (開発中の最新版)をインストールする
  2. Jupyter kernelspecでサポートされたRをインストール
  3. Jypyter用のRカーネルであるIRkernelのインストール
  4. VS CodeのJupyter 拡張のインストール
  5. VS Codeの設定: "jupyter.experiments.optOutFrom"["NativeNotebookEditor"]に編集し,VS Codeを再起動する.
  6. 完了,Notebookが利用できます.
  • Option: 設定で "jupyter.insidersChannel""daily" または "weekly" に設定することで拡張機能の更新を確認できます

R Markdownを使いこなす

R Markdownのセル機能を利用することでJupyterのような使い方ができます.
Hello.rmdのようなファイルを生成しバッククォートで囲むことでマークダウンの中にコードを埋め込み実行することができます.

Screen Shot 2020-12-15 at 17.24.31.png

Run Cellというコマンドを押すことで囲んだ箇所の命令を実行できます.
また,Rファイル操作時と同じようにCtrl+Enterコマンドでカーソル位置のコードを実行することもできます.

R Markdownファイル専用の拡張として,R Markdown All in Oneというものもあり,スニペットやシンタックスハイライト,フォーマットを主にサポートしているそうです.vscode-rとの並用は確認していませんが興味があれば使ってみてください.

開発を支えてくれているコラーボレーター様

vscode-rは以下のコラボレーター様やプルリクエストやissueの報告してくださる方々のおかげで開発が成り立っています.
* Thomas Brittainさん: 最初に参加してくれたコラボレーターさん.マイコンからニューラルネットまで幅広く詳しいです.
* Andrew Craigさん: 同じく最初期から参加してくれている本職データサイエンティスト.東京在住でJapan.RやTokyo.RなどのRコミュニティで参加・発表されているそうです.
* Kun Renさん: Thomasさんと入れ替わりで参加してくれた方.今コミュニティ内で一番開発やコードレビューを頑張っていてMicrosoft MVPも受賞されています.twitterではvscode-rに関する最新機能を紹介してくれています.
* Miles McBainさん: まだvscode-rが安定していない頃からブログやTwitterで紹介してくれていた方で,この機能についても記事を書いてくれています.
* Manuel Hentschelさん: Rのデバッグ拡張VSCode-R-Debuggerの開発者さん.コラボレーターになってからは機能開発だけでなくメンテナンスやエンジニアリング関係の作業もしてくれています.

まとめ

コラボーレータ,コントリビューターの方々による協力のおかげで,多くの機能が利用できるようになりました.
前から利用者はもちろん,R Studioからの利用者にも楽しんでプログラミングしていただけるなれば幸いです.
また,本記事の誤りや機能の要望などございましたら,記事のコメントかGitHubのissueにぜひ投稿していただけると励みになります.

関連リンク

11
Help us understand the problem. What is going on with this article?
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Ikuyadeu

Comments

No comments
Sign up for free and join this conversation.
Sign Up
If you already have a Qiita account Login
11
Help us understand the problem. What is going on with this article?