はじめに
データサイエンス需要の高まりに比例してRの需要も高騰しています.本記事では広く利用されている Visual Studio Code(以下,VSCode) においてR言語を利用するための環境設定方法を紹介いたします.
2年前に投稿した記事ではVS CodeにおいてRを使うための拡張機能であるvscode-rの基本的な機能を紹介しました.これからVS CodeでRを使ってみようかなという方は参考になれば幸いです.本記事ではその後二年間で改善・追加された機能の紹介を雑多に行います.
本記事の想定読者
- すでにvscode-rのユーザーでより機能を使いこなしたい人
- R Studio ユーザーでVS Codeに環境を移したい人
を想定しています.
その他
は関連記事等をご参照ください.
本記事で紹介する機能
- コード補完機能の有効化
- データ,グラフ情報の表示
- R StudioのアドインをVS Codeで使う
- Rに対応したJupyter Notebookを VS Code で使う
- R Markdownを使いこなす
かなり雑多ですが,それぞれ独立していますので気になったとこだけ順番に読めます.
コード補完機能の有効化
R EditorSupportという団体によって補完機能が実装されました.
以下の手順で利用できます.
- R LSP Clientをインストールする
- R Language Serverを以下のRコマンドによりインストールする.
install.packages("languageserver")
または,
devtools::install_github("REditorSupport/languageserver")
- VS Codeの設定を開き,利用しているOSに合わせて
r.rpath.windows
,r.rpath.mac
,r.rpath.linux
のいずれかにRをインストールしたパスを入力し,VS Codeを再起動する.このパスはvscode-rで利用しているパスと同じものです.VS Codeの設定方法についてはこちらの記事をご参照ください
データ,グラフ情報の表示
標準設定ではグラフ表示は別ウインドウで表示されていましたが,設定を編集することでR Studioのようにグラフ操作が行えるようになります.
- VS Codeの 設定:
"r.sessionWatcher"
をtrue
に編集し,VS Codeを再起動する. - データやグラフを表示するソースコードを記述し実行する.
- エディタのウィンドウとしてグラフが表示される
利用例: 少し特殊なレイアウトでソースコードを左,ターミナルを右に設定しています.
R StudioのアドインをVS Codeで使う
rstudioapiのエミューレーションを使うことで一部のRStudioアドインが利用可能です. 特にドキュメント検査・操作関連のアドインは比較的安定して利用できるそうです.
1. R Studio アドインサポートの有効化
.Rprofile
ファイルにoptions(vsc.rstudioapi = TRUE)
を追記します.
2. セッションの再起動
Rコマンドで .vsc.attach()
またはrstudioapi::restartSession()
を実行する
3. アドインの実行
アドインを実行するには主に2つの方法があります.
- F1キーでコマンド入力バーを出し,コマンド
R: Launch RStudio Addin
を実行する.このコマンドは"r.lauchAddinPicker"
としてショートカットキーにも対応できます. - キーバインドを用いる.対応したアドインはアドインパッケージの
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を必要としません.
- VS CodeのInsiderバージョン (開発中の最新版)をインストールする
- Jupyter kernelspecでサポートされたRをインストール
- Jypyter用のRカーネルであるIRkernelのインストール
- VS CodeのJupyter 拡張のインストール
- VS Codeの設定:
"jupyter.experiments.optOutFrom"
を["NativeNotebookEditor"]
に編集し,VS Codeを再起動する. - 完了,Notebookが利用できます.
- Option: 設定で
"jupyter.insidersChannel"
を"daily"
または"weekly"
に設定することで拡張機能の更新を確認できます
R Markdownを使いこなす
R Markdownのセル機能を利用することでJupyterのような使い方ができます.
Hello.rmd
のようなファイルを生成しバッククォートで囲むことでマークダウンの中にコードを埋め込み実行することができます.
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にぜひ投稿していただけると励みになります.