RをIPython Notebookから使う

はじめに

プログラミング言語PythonにはIPythonという対話型のシェルがあり,さらにこれをWebブラウザから使うIPython Notebookという仕組みがあります(Mathematica Notebookみたいなもの)。ここで取り上げるのはIPython 2のNotebookですが,IPython 3が開発中で,さらに次世代のJupyter Projectが始まりました。「Jupyter」の名前に含まれるJulia,Python,Rが便利に使えるシェルになると思われます。

ここでは普通のIPython 2.xからRを使う方法を説明します。

準備

まずはPython,IPythonをインストールする必要があります。また,rpy2というPythonのパッケージが必要です。Pythonがインストールされたシステムであれば pip コマンド(Python 3なら pip3)で簡単にインストールできます:

sudo pip3 install rpy2

使い方の詳細はrpy2 documentationをご覧ください。IPythonのrmagicのページにも簡単にまとめられています。最低限のことは以下の例で説明します。

簡単な例

ターミナルを開いて,適当な作業用ディレクトリに移動し,そこでIPython Notebookを起動します:

ipython notebook

これで自マシンの8888番ポート(つまり http://localhost:8888)でWebサーバが起動し,標準のWebブラウザが開いてそこに接続します。ブラウザはWebSocketをサポートする必要があります(IEなら10以降)。このブラウザの画面の右にある [New Notebook] ボタンをクリックし,新しいNotebookを作成します(デフォルトのNotebook名は Untitled0.ipynb ですが File メニューから Rename できます)。

ブラウザ(Notebook)の In [ ]: の右に,Rと連携させるための仕組みをロードするために,次のように打ち込んで,Shift + Enter します(昔の rmagic は今は rpy2.ipython にしたほうがよいようです):

%load_ext rpy2.ipython

次のセルからは,Rの命令であれば頭に %%R という行を付けます(これを付けなければPythonの命令になります)。セル内の改行は Enter,セルを実行するには Shift + Enter です。

IPython NotebookでR

セルの内容は遡って変更できます。例えば上の hist(x)hist(x, col="gray") に変更すると,グラフの色が変わります。また,グラフ出力では,先頭行に %%R -w 500 -h 300 のように横・縦のピクセル数でサイズを指定することができます。

Notebookの内容はときどき自動保存されますが,保存ボタン(フロッピーディスクのマーク)をクリックしても保存されます。シェル(ブラウザ)を閉じても再接続して *.ipynb ファイルを開けば,作業を続行できます。

*.ipynb ファイルはJSON形式のテキストファイルです。画像はテキスト化(Base64)されて埋め込まれます。

セルの型は標準では「Code」となっていますが,「Markdown」とすれば,Markdownという記法でリッチテキストが挿入できます。$...$$$...$$ でインライン・別行の数式をLaTeX記法で書けます(MathJaxでレンダリングします)。

IPython NotebookをHTMLに変換するには次のようにします(あらかじめpipで pygments パッケージをインストールしておきます):

ipython nbconvert --to html Untitled0.ipynb 

画像はdata URI schemeでHTMLファイルに埋め込まれます。