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



# はじめに

Visual Studio Code(以下VSCode)でR Studioのような環境[vscode-r](https://marketplace.visualstudio.com/items?itemName=Ikuyadeu.r)を開発しました．
本記事はより快適にR言語をVS Codeで利用していただくために以下のトピックを紹介します．

* [R Studioなどの他環境との比較](#他開発環境との比較)
* [より快適にRで開発するための機能ガイド](#機能ガイド)
* [今後のアップデート予定](#今後のアップデート予定)

2019/3/7 開発を再開しました．[補完機能](https://marketplace.visualstudio.com/items?itemName=REditorSupport.r-lsp)を開発したので追記
2020/3/24 コラボレーターの方が[wiki](https://github.com/Ikuyadeu/vscode-R/wiki) (英語) を作ってくださいました

# 想定読者

* RユーザーでVS Codeを利用し始めた人
* R以外の言語も同一プロジェクトで管理したい人
* 開発環境を一つに統一したい人

# 他開発環境との比較

他のR開発環境で代表的なものは以下となります．

* [R Studio](https://www.rstudio.com/)
* Visual Studio + [R Tools for Visual Studio(RTVS)](https://docs.microsoft.com/ja-jp/visualstudio/rtvs/)
* Sublime Text + [R-Box](https://github.com/randy3k/R-Box)

VSCode版を利用するメリット，デメリットは以下の通りとなります．
他の開発環境の利用歴が短いためVS Codeよりの内容となっています．

## メリット

* Rと他言語と並行して利用可能
* シンタックスハイライトが豊富
* Windows, Mac, Linuxで利用可能
* VS Code自体が成長中(日本語にも対応)
* 日本語でのバグ報告，リクエスト，質問歓迎 (<https://github.com/Ikuyadeu/vscode-R/issues>)

## デメリット

* パッケージ管理ができない (2020/3/24 最近少しできるようになりました)
* 日本語関係が弱いのかも [[参考記事](https://qiita.com/surei/items/e5e22c70dd79c5603678)]
* 関連ドキュメントが少ない

R以外の開発言語を利用しない，パッケージ管理が必須な方はR Studioをおすすめします．

# 初めての実行

実行環境の導入については別の利用者様が記事を書いてくださった為[そちら](http://i-was-a-ki.hatenablog.com/entry/2017/12/05/222811)をご参照ください．

読むのがめんどうな方は
* VS Code
* R
* R-LSP
* vscode-r
を取得してwindows版のみsetting.jsonでRのパスを定義してもらえば十分です．

実行はR Studioと同じく

* 現在の行または選択行を実行: `Ctrl` + `Enter`(Macは`⌘`+`Enter`)
* ソースコード全体を実行: `Ctrl` + `Shift` + `Enter`(Macは`⌘` + `Shift` + `Enter`)またはソースコード上の<img src="https://qiita-image-store.s3.amazonaws.com/0/221488/cf0969f8-abde-7cee-ad5c-0b93e365adfe.png" width=20>ボタン

で可能となっています．

# 機能ガイド

[上の初めての実行](#初めての実行)で書かれてない設定やコマンドについて紹介

Rに限らず設定は`setting.json`から変更できます．(詳しくは[こちら](https://vscode-doc-jp.github.io/docs/getstarted/settings.html))

コマンドは`F1`キー(Macのバージョンによっては`fn`+`F1`)から呼び出せます.

## lintr

lintrはコードを綺麗にするためのツールです．

LSPでサポートされているので必要な方はLSPのインストールをしてください

## プレビュー

R Studioのようにデータの状況を見ることができます．

* データフレームの内容を閲覧: データフレーム名を選択 -> `F1` -> `R: Preview Dataframe`
![DataframePreview.gif](https://qiita-image-store.s3.amazonaws.com/0/221488/995fb61e-9753-8b37-86a3-034e52700fd5.gif)


* 環境変数の閲覧: `F1` -> `R: Preview Environment`

下のようなソースコードを読み込んだ場合

```test.r
# © Microsoft. All rights reserved.

#' Add together two numbers.
#'
#' @param x A number.
#' @param y A number.
#' @return The sum of \code{x} and \code{y}.
#' @examples
#' add(1, 1)
#' add(10, 1)
add <- function(x, y) {
  x + y
}

hello <- rnorm(100)

#region

print(add(1, -2))
print(add(1.0e10, 2.0e10))

#endregion

print(paste("one", NULL))
print(paste(NA, 'two'))

print(paste("multi-
line",
'multi-
line'))
```

こうなります(利用テーマは同じく開発中の[lucario](https://marketplace.visualstudio.com/items?itemName=Ikuyadeu.lucario))．

![Screen Shot 2017-12-24 at 18.16.56.png](https://qiita-image-store.s3.amazonaws.com/0/221488/0f834871-9f8b-ac12-44ec-9b8e0225b64e.png)


## Git

R Studioなどの開発環境から移行した場合は`F1` -> `R: Create gitignore`で設定ファイルを無効にできます．

# まとめ

学業の都合であまりお返事はできていませんが，機能リクエストなど気軽にコメントいただけると幸いです．(<https://github.com/Ikuyadeu/vscode-R/issues>)．
コラボレーターの方が優秀でリモート環境やプロットの表示などが実装されました．おかげで利用者もissueも増えています．お手伝いいただける方を募集しています．