RStudioはR言語ユーザ向けの統合開発環境
本稿では、多数の機能を検索して絞り込み、実行するコマンドパレットを起点に、生産性を高める方法を紹介します。RStudioの基本的な使い方に関しては
コマンドパレットによる機能の検索と実行
キーボードショートカットはマウスを利用せずにさまざまな操作を実行でき、手札を増やせば増やすほど操作効率が上がっていきます。ただし、手札を増やすには積極的にショートカットを知る姿勢が求められますし、利用頻度が低ければ忘れてしまうこともあります。一方、キーボードショートカットを使わずにマウス操作でメニューを開いて機能を探すことはできますが、いくらメニューが階層化されていても、意外とすぐには見つけられず、しばしば隅から隅まで探す羽目になります。
そんなときのためにコマンドパレットの使い方だけは覚えておきましょう。コマンドパレットをキーボードショートカット
たとえばソースファイルの全部または一部を実行したいときは、コマンドパレットで
検索キーワード | 候補になるコマンドの概要 | 例 |
---|---|---|
Create | RファイルやRmdファイルなど、さまざまなファイルを新規作成するためのコマンド | Create a New R Script |
Close | 主にファイルを閉じるためのコマンド。編集中のファイルを閉じる、編集中のファイル以外を閉じる、すべてのファイルを閉じるなどのパターンがある | Close Current Document |
Go | 関数の定義や次のチャンクなどにカーソルを移動する | Go To File/ |
Run | 指定範囲のコードを実行する | Run Current Line or Selection |
Toggle | 行の折り返しやアウトラインの表示など一部の設定のオン・ |
Toggle Soft Wrap Mode |
コマンドパレット上の機能には、キーボードショートカットがあれば必要なキーの組み合わせが右側に表示されます。コマンドパレットを使いつつキーボードショートカットを覚えていくと、検索の手間も減らせます。
概要 | Windows | macOS |
---|---|---|
現在行または選択範囲を実行 | Ctrl+Enter | Cmd+Return |
先頭行から現在行の直前まで実行 | Ctrl+Alt+B | Cmd+Option+B |
現在行からファイル最終行まで実行 | Ctrl+Alt+E | Cmd+Option+E |
すべて実行 | Ctrl+Alt+R | Cmd+Option+R |
すべて覚えるのは大変そうですが、1つ目の
文字列選択系のキーボード系のショートカットは、
概要 | Windows | macOS |
---|---|---|
すべてを選択 | Ctrl+A | Cmd+A |
指定方向に範囲を変えて選択 | Shift+矢印 | Shift+矢印 |
現在位置から先頭行までを選択 | Shift+Ctrl+Home | Shift+Cmd+Home |
現在位置から最終行までを選択 | Shift+Ctrl+End | Shift+Cmd+End |
選択範囲に対して実行可能な操作は、実行
ファイルや関数の検索
プロジェクトの規模が大きくなると、Filesペインから目的のファイルを開くまでに時間がかかることが増えます。また、どの関数をどのファイルに定義したかわからないこともあります。
このような場合は、コマンドパレットから
選択候補の左側には、ファイルの拡張子やR上の変数の種類に応じたアイコンが表示されます。また、選択候補が変数の場合は、変数を定義したファイルのパスも表示されます。
候補を選択すると、必要なファイルを開くか、すでに開いていれば該当タブに移動します。特に関数を選択した場合は、該当行へジャンプしてくれます。単純な文字列検索に比べ、確実性とファイル横断的な挙動が魅力です。
定義を知りたい関数にキャレットを移動させてコマンドパレットを開くと
文字列の検索と置換
文字列の検索と置換はさまざまなエディタに存在する機能で、Microsoftのメモ帳やWordなどにも搭載されています。検索を開始するキーボードショートカットに馴染みのある方も多いかもしれません
RStudioでも同様のキーボードショートカットを利用でき、コマンドパレットなら
正規表現を利用すると、特別なキーワードを使って、行頭や行末、改行といった特殊な条件にもマッチする検索ができます。正規表現を利用するには、検索窓の下部に存在するチェックボックスの中から
特定範囲で文字列の一括置換を行うには、事前にマウスやキーボードで該当範囲を選択しておきます。たとえば、5行目から10行目の範囲だけ、TRUE
をFALSE
に置換といったことができます。これによって想定外の場所まで置換する可能性を減らせます。範囲選択後に検索窓を開くと、自動で選択範囲に限定した文字列の検索と置換を行うモードになります。
変数の改名
変数名をx
などと仮置きした場合など、後から変数を改名したくなることがあると思います。前述の
コマンドパレットから
スコープを限定した改名の重要性を以下のコードを例に考えてみましょう。例では3つの変数を定義します。
- "f": 関数。Rでは関数も変数として扱える点に注意
- "x": 数値。関数
f
の中と外で定義 - "y": 数値。関数
f
の外で定義
f <- function() {
x <- 20
return(x + y)
}
x <- 2
y <- 1
print(f() + x + y) # 24
変数x
のように、関数の中と外に同名で値の異なる変数があっては混乱や事故のもとです。2行目のx <- 20
を削除すると、最終行の実行結果が24
から6
に変わってしまいます。
そこで関数の外にある変数x
とy
をX
とY
に改名するとしましょう。適切に改名した後なら、2行目のx <- 20
を削除すると実行結果はエラーに変わるので、コードの安全性が高まります。
スコープを気にせず改名してしまうと、関数f
の中で定義した変数x
もX
になってしまい、安全性が高い状況とは言えません。また、スコープを気にして目視で1つずつ確認しながら改名していては、漏れが起きるかもしれません。
変数の命名は可読性を左右する重要な作業ですが、その分だけ悩める作業でもあります。気軽に改名できるとなれば、悩みは後回しにできます。ロジックをコードに落とし込むうちに良い名前が浮かぶかもしれません。
まとめ
本稿ではコーディングが捗るRStudioの便利機能を紹介しました。最初に紹介した通り、コマンドパレット機能は他の機能を検索・
本連載はR言語の活用を効率化してくれる外部ツールを紹介していきます。R言語と追加パッケージを中心に生産性を高める術を紹介する書籍には、本連載の執筆陣が手がけた