Rstudio を使わない人にとってのRstudio

MikuHatsune2016-12-09

この記事はRStudio Advent Calendar 2016 の9日目の記事です。
 
Rstudio、使ってますか? 私は使っていません。
インストールはしてあります。Rstudio を使う利点は、OS が異なっても統一された解析環境を用意できることです。R 初心者にR を使ってもらう時に「Rstudio っていうのが使いやすいらしいから一緒にインストールしておいたらいいよ」って適当なことを言うことがあります。
 

windows OS では、R ショートカットアイコンをクリックして起動すると、おなじみのR 枠とR GUI がでてきます。
R 枠が邪魔でしょうがないひとは、R ショートカットアイコンを右クリックして、プロパティのリンク先の末尾に

--sdi

を追加しましょう。幸せになります。
windows 版のRはエディタが貧弱です。Ctrl+R で選択範囲をコンソールに実行することができますが、基本的に未設定のテキストエディタなのでタブハイライトやカッコ対応などが(たぶん)ないので、長いスクリプトを書くのに手こずります。また、windows のR GUI は落ちやすいと個人的に思っているので、コンソールが死んだらテキストエディタも同時に死にます。
R.exe のPATH を設定すれば、コマンドプロンプトからR が起動できます。すると、R ショートカットアイコンをクリックすることなく、windows ボタン+D (R だったか?) で検索ボックスが開き、cmd と入力するとコマンドプロンプトが開き、R と打つだけでR GUI (コマンドプロンプト上で)が実行できるかっこよさを演出できます。しかし、windowsコマンドプロンプトはデフォルトではコマンドプロンプト上でのコマンドコピペができないので、イラッ☆とします。
最近はwindows でR を使わないので使い勝手がもうよくわかりません。私がwindows 現役だったころはsakura editor を使っていました。R 用に関数ハイライトをしてくれるaddin があったはず。周りでは秀丸が多いです。
 
Mac OS でのR は、R ショートカットアイコンでもいけるし、ターミナルからR と打つだけでも実行できます。ショートカットから起動したR ではテキストエディタがコンソールと連動するので、コマンドボタン+エンターで(ターンッ ドヤッ ができます。Mac OSテキストエディタはハイライトやカッコ対応など最低限の機能がついているので、こだわりがない人ならこれくらいでポチポチスクリプトが書けます。
Rstudio のテキストエディタはほとんどMac OS と同じです。Mac の環境が良かったという人は別OS でも導入するといいです。
 
ubuntu でのR は、ターミナルを開いてR と入力すれば、R GUI がターミナル上で実行できます。ターミナルのショートカットはCtrl+Alt+T です。R GUI に連動したテキストエディタは(自分の環境では)存在しません。ubuntu ならデフォルトでgedit というテキストエディタが存在していますが、範囲選択でショートカットキー→コンソールへドーンッ という技はないです。gedit にR addin というものは存在していますが、gedit の下にR コンソールが出現してテキストエディタ内でR が実行できるという非常に使いにくいものになっています。gedit 内のR が計算で死んだらgedit ももちろん死にます。
ubuntu のターミナルのコピペショートカットキーは、デフォルトでCtrl+Shift+C/V となっているので、編集 > キーボードショートカット から好きに変更しましょう。
(ここで自由に変更しすぎると、後述するvim のキーと競合するので注意)
ubuntu の問題点としては、導入コスト(労力が)非常にかかりすぎることです。個人的にはOS が死んでしまってOS がない中古のノートPC を3-4万くらいで買って、ubuntu をインストールすればいいと思いますが、ubuntu のインストールメディアを作るのも8ステップくらいあります(適当
 
こういうOS間での差異が面倒くさい人はRstudio を導入するといいと思います。サーバーなどで大人数で利用する場合も規格統一のために利用するといいと思います。
 
Rstudio でオレ的覚えるべきショートカットキーは以下です。
Ctrl + Enter:選択範囲を実行コンソールに飛ばします。エンターキー(ターンッ ドヤッ が実現できます。
Ctrl + 1,2,3,4:Rstudio の画面内を移動します。ぶっちゃけ、テキスト部分の1 とコンソール部分の2 しか使いません。
Ctrl + Shift + k:rmarkdown ファイルをknitr に飛ばして、文書化します。同時にブラウザが走るので、実行結果をhtml で見ることができます。

 
テキストエディタとして様々な技があるようです。R ヘビーユーザーでPC を使う理由はR しかないでしょ何言ってんの? な方は、Rstudio ですべてが完結すると思いますが、私の用途としては論文執筆などでtex を使うので、普通のテキストエディタが欲しいです。
 
私がRstudio をあまり使っていない理由は以下です。
起動するときのあの回転がイラッ☆
pane が4つも要らない(宣言されている変数や履歴のところ)
プロットがイケてない
 
起動は遅い、と感じています。たぶんいままでに開いていたファイルのキャッシュ的ななにかのせいなんでしょうけど、あれで毎回イラッ☆
Rstudio の画面は、デフォルトでは正方形っぽさを演出しているので、宣言されている変数などを表示する窓があります。大人数での編集ならば一目瞭然でわかりやすいですが、個人的には要らない子です。
プロットしたときにRstudio 内でプロットされます。これは、新しいプロットを描いたときに過去のプロットを消去するのではなく、データが残っているので巻き戻してプロットを確認できる、という利点もありますが、Rstudio 以外ならデフォルトでは正方形のプロット画面が呼び出されるのに、Rstudio だと微妙なアスペクト比になるのが耐えられない。プロットの保存画面で、好きに縦横ピクセルはいじれますが、そこじゃないんだよ…
 
という感じでRstudio は私の中でメインストリームではありません。
 
前置きが長くなりましたが、vim を使いましょうという話です。私はかつてマウス操作で右手を酷使しすぎて腱鞘炎っぽくなりましたが、マウス操作頻度を減らし、キーボード操作を多くすることでかなり軽減されました。それに使ったのがvim で、vim からR を起動するvim-r-plugin を使ってみましょう。
導入はここらへんを参考にします。
tmux + vim + vim-r-plugin で最高の環境を整える - Qiita
vim-r-pluginの導入方法 – 日々の記録簿
私のvim の設定 vimrc とtmux の設定 .tmux.conf は探せばどこかにあるのですが、こういうのは自分によさげなのを色々試してちょこちょこパクっていくのがいいので、いろんな方のを参考にして自分で成長させてください。どうしても欲しい人はあげます。
 
Rstudio っぽさを演出するならばtmux が必要です。ココらへんを参考にインストール、バグ対応をします。
tmux上のvimで無駄にboldになったりするやつ - 人生いきあたりばったりで生きてます@はてな
tmux の status line の設定方法 - Qiita
達人のtmux.confコピペしたら動かなかった話 - 魔法使いの卵
達人に学ぶ.tmux.confの基本設定 - Qiita
tmux + vim + vim-r-plugin で最高の環境を整える - Qiita
vim-r-pluginの導入方法 – 日々の記録簿
tmuxのすすめ - catatsuy's Blog
tmuxを使って幸せなvimライフを送ろう | blog.tnker.com
tmuxの使い方 - Qiita
 
実際にR を起動してみましょう。環境はlets note SZ5 ubuntu 14.04 です。
ubuntu でのターミナルの起動はCtrl + Alt + T です。これで小さい窓のターミナルが起動しました。
Ctrl + windows + ↑ で画面の最大化ができます。これで画面いっぱいにターミナルを最大化します。
tmux とコマンドを打つと、tmux が起動します。概観はターミナルと変わりありません。
vim でR ファイルを開きます。.R ファイルと連動して以下のことができます。

vim hoge.R

,rf と打つと、R コンソールが開きます。tmux 内でR コンソールが開きます。今回はターミナルをどう分割するかのオプション

let vimrplugin_vsplit = 1

と1 (TRUE) に設定しているので、縦に分割されます。これによってモニターが左:スクリプト、右:R コンソール、に分割されました。Rstudio で私が必要としているのはスクリプト部分とコンソール部分なので、これでいいです。
,l で選択部分を実行します。vim での範囲選択はv なのでこれで任意行を指定します。Ctrl + Shift + v で任意の形で範囲指定ができ、これも ,l で実行できます。
プロットはターミナル外に、普通のR のように描出されるので、Rstudio のイラッ☆も解消されます。

 
実際には、1画面全部をターミナルにせず、半分をターミナル、半分をニコニコ動画でアニメを見ながら、もとい調べ物をしながらスクリプトを書くので、ブラウザがあることがほとんどです。画面の半分にターミナルを開くショートカットは Ctrl + windows + ←/→ です。こうすると、縦分割はめんどくさいので

let vimrplugin_vsplit = 0

と水平分割にします。

 
tmux を立ちあげなくても、普通にターミナルでR を起動してから ,rf と打ってもR コンソールが起動します。このとき、R コンソールは立ち上がっているターミナルの別にターミナルが起動します。個人的には同一ターミナル内の別タブに起動して欲しいところです。

 
実際には、ターミナルを開く > Ctrl + T で同一ターミナル内に別タブを作る > 片方はvim でR スクリプト、片方はR を起動する > Alt + 番号もしくは Ctrl + ←/→ でターミナル内のタブ間の移動ができる > vim でコピーコマンドを使ってR に貼り付け
を繰り返している感じ。
これだけでもマウス操作から解放されて腱鞘炎はかなりよくなった。けれどもコマンド一発でスクリプト > R 実行、がなかなかいい環境にならないのでどうにかしたい。
 
現場からは以上です。