この記事はRStudio Advent Calendar 2016の10日目の記事です。
コード補完とは
コード補完とは,コード入力の途中で文脈に沿うようなコードを提案して補完してくれる,そんな感じの機能です。もちろんRStudioにもこの機能が備わっており,関数名などを入力している途中でTabキーで活用できます:
なおRStudioのコード補完はかなり便利で,いろんな補完をしてくれます。今回はそのいくつかをご紹介します。
関数名の絞り込み
関数名を入力していってTabキーを押して候補を表示させると,かなりの数が候補に上がる場合があります。この時,その続きを入力していくと絞り込みがなされます。
これが地味に便利です。だからちょっと関数名を入力したらTabキーを押し,適度に文字を追加して確定のTabキーでやればスムーズです。実に気持ちいいので試してみてください。
パッケージ名の補完
Rを使っていくとまずはlibrary(kosaki)
といったようにライブラリを読み込むことになるのが通常。短いパッケージ名ならまだいいですが,長いパッケージ名(DiagrammeRなど)だとかなり面倒ですし,なによりタイポが辛いです。
でも安心してください。RStudioはパッケージ名も補完してくれます:
もちろんインストールしてあるパッケージしかリストアップしませんが,かなり強力です。なおこれはlibrary()
の内部だけではなく,パッケージ名::
と呼び出す時でも有効です:
また,これで指定したいパッケージで続けてTabキーを押せば,そのパッケージの関数一覧が表示されます:
もちろんこのあとも絞り込んでいけるので,ある程度入力してTabキーを押せばスムーズでしょう。
Rオブジェクト名の補完
RStudioで補完してくれるのは関数名だけではありません。Rオブジェクトについても補完してくれます:
Rオブジェクトとしてdata.frameを読み込んでいるならば,上のような感じで出てきます。またはじめから組み込まれているデータセットも保管してくれます。これもまた便利です。
オブジェクト内の要素を補完
要するに,以下のような感じです:
関数のカッコ内でTabキーを押すと,このような感じになります。おそらく引数として入るであろうものを候補としてあげてくれます。これが非常に便利です。なお,これはまだGlobal.Envに入ってなくても<ー
とかコード上で生成されるであろうものに対しても拾ってくるのを確認してます…。
いろいろなパターンを試してみてください。例えばリストに関しては,こんな感じになります:
ここから…
こんな感じへと,Tabキーで繋いでいけます。
ディレクトリ名・ファイル名を補完
要するに,以下のような感じです:
ダブルクォーテーションを入れてTabキーを押すと,このように作業ディレクトリ内のファイル一覧を表示します。ファイルを選択すれば,そのままファイル名が補完されます。なおここでディレクトリをTabキーで選択すると…
このように,ディレクトリ名が入力補完されたうえで,その中へと進んで候補が出てくるようになります。これは非常に協力なので,ぜひ今後は活用してみてください。
コードスニペット機能
スニペットとは
現在のRStudioには,コードスニペット機能が実装されています。スニペット機能とは,簡単に言うとよく使うようなフレーズを登録しといて,簡単に呼び出せて入力を楽にするという機能です。コード補完とイメージは近いのですが,ちょっと違います。例としてfun
を取りあげます。
fun
と入力すると,以下のように表示されます:
この一番上にある,メモみたいなアイコンがついたfun
というのが,funのスニペットです。これを選択してTabキー(あるいはShift + Tabキー,詳しくは脚注参照してください→)1を押すと,以下のようになります:
この時,自動的にfunction()
関数が挿入されるのですが,function
関数が出てくる場合によくあるパターンを想定して,それも自動的に入力されるようになってます。なおはじめにname
が選択状態にあり,このまま格納する名前を入力します。このあとで**さらにTabキーを押すと,次のvariables
へと自動的にシフトします。
このように,まるで先回りして準備してくれている感覚で,さくさくと入力ができるようになるわけです。慣れるとすごく便利です。
RStudioのスニペット一覧
RStudioにははじめからいろいろなスニペットが登録されています。確認方法は,メニューバーの[Tools] - [Global Options...]をクリックし,ダイアログボックス左側の[Code]を選択します:
すると,上記のように表示されるので,一番下のSnippetsから,**Edit Snippets...**をクリックしてください。すると,スニペット編集画面になります:
思ったより少なめな印象ですが,いろんなファイル形式に対応しています。なおRmdはMarkdownと同一と考えてください。記法については眺めていればなんとなくつかめるかと思います。なおこのスニペットは自分で編集したり保存したり共有したりすることができます。
このSnippetについては,以下の資料をぜひ確認してください:
なお,R Scriptsファイル以外でそれぞれのファイル形式用のスニペット(とコード保管も?)を利用したいなら,一度そのファイルを保存してから試すようにしてください。そうしないとおそらくはうまくいかないと思います。
さらに,StanやHTMLにも対応しています。これらは一部の方には非常に魅力的に映るはずです。ぜひ試しましょう。
Enjoy!
-
途中までの入力で,画像のように候補としてスニペットが出ているときはTabキーでOkですが,
fun
と全て入力した場合にはTabキーでは反応しません。Shift + Tabキーとなります。てか基本は該当するスニペットのスペルを打ち切ってからShift + Tabキーです。この画像のパターンは「これを使いたいんじゃないの?」と気を使ってRStudioが出してきてくれてる,そういう感じです。そういう意味では補完機能ともいえるのかな? ↩