10
11

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

SublimeTextのR-BoxとR-SnippetsでR言語の開発環境を整えてみる

Last updated at Posted at 2016-05-17

R言語の開発環境

みなさんはR言語を使っていますか?

僕は普段R言語を使うことがありますが、これまではRStudioで開発をしてきました。
他の多くの方も賞賛する、R開発環境のデファクトスタンダードであるRStudioですが、個人的にはいくつかの不満がありました。

例えば

  • リファクタリングが弱い (特に変数名の一括置換)
  • リフォーマットができない
  • ウインドウのカスタマイズ性が低い

などの点です。

そこで開発環境の乗り換えを検討してみたのですが、補完が効くエディタとなると、どれもいまいちな感じでした。
メジャーなところだとemacasSublimeTextが有力候補として残ったので、自分は慣れている後者を選んでみました。

結論から言うと、RStudioに比べてとても快適でビルトインの関数は補完もしっかり効いています。
マルチカーソルの機能もあって、リファクタリング作業も非常に編集が楽になったと感じています。

compl.png

このように補完も効くし

exec.PNG

R GUIでの実行もできます。

ただし、パッケージのインストール中に設定で少しハマりどころがあったので紹介しておこうと思います。

開発環境

Windowsで開発していますが、たぶんMacやLinuxでも同様の方法で解消可能だと思います。

  • Windows 10 Pro 64bit
  • Sublime Text 3 Build 3114
  • R 3.3.0

R-BoxとR Snnipet

SublimeText にはR-Box(Rのrepl実行用プラグイン)とR-Snippets(スニペットセット)が用意されていますので、Package Controlからインストールするだけで開発環境が整います。
なんて便利!!

本来はインストール後に任意のRファイル内でCtrl+Enterすれば、自動的にR GUIが立ち上がるはずです。

ところが自分はこれらのプラグインを入れてみたものの、GUI画面が立ち上がる様子が一切ありませんでした。
またR-Boxのユーザー設定も見なおしてみたのですが、やはり一切反応なし。

これはなぜかというと、R-BoxではR GUIを起動させるためにSendTextPlusという別のパッケージを利用していて、その設定が正しくなかったため起動しなかったのです。
図にするとこんな感じ。

zu.png

R-Boxをインストールするときにセットで入ってくるのですが、特に見向きもせずスルーしていたので気づくのに時間がかかってしまいました。

起動しないエラーを解消するには、SendTextPlusのユーザー設定に以下を記述します。

{
	"R64" : "C:\\Program Files\\R\\R-3.3.0\\bin\\x64\\Rgui.exe", // 各自のRgui.exeのパスを設定
	"prog": "R64"
}

progには他のGUIアプリケーションも指定できて、例えばSublime REPLを使いたい場合は"prog": "SublimeREPL"としてあげればSublimeREPLでも起動します。
これなら、RStudioのような開発環境がSublime Textでも十分再現可能になりますね。

参考

10
11
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
10
11

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?