RとSublimeText
(2018/6/12)
Rは通常のプログラムとは違い、豊富な関数と、扱いやすいベクトル型やデータフレームなどにより、その都度データを加工・処理する対話型の使い方に向いている。
既にR GUIやRStudioのような優れた環境が存在するが、R GUIはエディタがシンプルすぎて機能性にかけ、RStudioはまだまだ安定性にかけるところがある。そこで、豊富な機能と拡張性をもったエディタであるSublimeText上でRのコードを記述し、そのコードをR GUIのコンソールに送るという環境が現状良いように思う。
Windowsでこの環境の構築手順について書いていく。試したOS等は以下のようになっている。
(2018/06/12)
Windows10
R version 3.5.0
Sublime Text versoin 3.1.1
RとSublimeText3のインストール
まずRとSublimeText3(以下Sublime)を普通にインストールする。
Sublimeにパッケージコントロールを導入
次にSublimeのパッケージを入れたり設定を変える。Rの方は特に設定することはない。
Sublimeのパッケージをインストールしたり、管理するためのツールとしてパッケージコントロールがある。Rと連携するためのパッケージをインストールしたいので、以下のサイトに従って導入する。
簡単に書くと、 ctrl + `
キー(もしくはメニューの View
> Show Console
)でコンソールを表示し、サイトに書かれているコードをそこにコピペしてEnter押せばOK。
インストールできたら ctrl + shift + p
でSublimeのコマンドパレットを表示する。ここに文字を入力することで、パッケージコントロールの操作やSublimeの機能を操作することができ、大変便利である。
例えば、" set r
"というふうに入力すれば、シンタックスハイライトをRモードにする機能が候補として表示され、Enterを押せば実際にRモードに変わってくれる。
パッケージコントロールを用いてパッケージをインストールするには、コマンドパレットに" install
"と入力すると表示される、 Package Control: Install Package
を選択する。そうするとインストールできるパッケージ一覧が表示され、検索もできる。
おすすめのパッケージ
少し脇道にそれるが、WindowsでSublimeを使うなら必須と言ってもいいパッケージを紹介する。
ConvertToUTF8
文字コードがShift_JISなどのファイルを開くと文字化けしてしまうが、このパッケージを入れておけば自動で判別してUTF8に変換してくれる。
IMESupport
日本語入力をサポートする。無いとかなり使いづらい。
Rのためのパッケージをインストール
本題に戻り、Rにコードを送信するためにR-boxパッケージを導入する。
ctrl + shift + p
からコマンドパレットを呼び出し、 Install packages
を選択、検索欄に r-box
と入力してEnterを押す。
導入されたら、コマンドパレットで List Packages
を選択し、R-boxが入っていることを確認する。同時にSendCodeというパッケージも入っているはずなのでそれも確認する。(ない場合は導入する)
パッケージの説明
R-box
RをSublimeで使うのに便利なツールが一度に導入できる。デフォルトのものより優秀なシンタックスハイライト、関数などの候補表示、外部へのコードの送信(SendCodeパッケージを利用)などである。
SendCode
外部のターミナルアプリなどにSublimeで書いたコードを送るためのパッケージ。R-boxはこれを利用してR GUIやRStudioにコードを送る。
パッケージの設定
R-boxの設定
R GUIがあるフォルダを指定する必要がある。コマンドパレットで Preferences: R-box Settings
(もしくはメニューの Preferences
> Package Settings
> R-box
> Settings
)を選び、以下のように記述する。
{
"rscript_binary": "C:\\Program Files\\R\\R-3.5.0\\bin\\x64"
}
C:\\Program Files\\R\\R-3.5.0\\bin\\x64
と書かれているところを自分の環境のパスに置き換え、保存して閉じる。
今後Rのバージョンをアップデートしたときなどはここを書き換える。また、うまく動かない場合はだいたいここが原因なのでいろいろ変えてみる。
SendCodeの設定
Rモードのときに、自動的にR GUIにコードを送るように設定する。R-boxと同様にSendCodeの設定ファイルを開き、以下のように記述する。
{
"prog": "r",
"r": {
"prog": "r"
}
}
以上で設定は終了。
使ってみる
ではちゃんと設定されているか試してみる。
- 念の為Sublimeを一旦終了し、R GUIとSublimeを起動する
- SublimeのモードをRにする(コマンドパレットから
Set Syntax: R
) - 適当なRのコードを入力して
ctrl + enter
これでRの方にコードが送られていれば成功!送りたい行にカーソルがある状態で ctrl + enter
を押すとその行が、送りたい部分を選択して押すと選択した領域全体が送られる。
もしうまくいかない場合は、コマンドパレットから SendCode: Choose Program
を選択し、 R GUI
にしてみてうまくいくか試してほしい。それでもだめなら設定を見直してみる。(特にR GUIのパスのところ)