今までIPython Notebook上でRを動かそうとするとrpy2やらをごにょごにょやるとかいう方法がありましたが、いちいち%%を打ったりといろいろ不便でした。
が、先月末(2015/02/27)のIPython 3.0のリリースでIPython Notebookが大きく変わり、(まだ開発版ですが)Rとの連携もかなり楽になりました!というか今後はRだけでなく、Juliaや他の言語もカバーする方向に進むそうで、特定の言語に依存しない部分をJupyterという別プロジェクトでやっていくそうです。
代表的な言語のJupyterカーネルとしては以下のようなものが存在する模様。
- Python (https://github.com/ipython/ipython)
- Julia (https://github.com/JuliaLang/IJulia.jl)
- R (https://github.com/takluyver/IRkernel)
- Ruby (https://github.com/minrk/iruby)
- Haskell (https://github.com/gibiansky/IHaskell)
- Scala (https://github.com/Bridgewater/scala-notebook)
- Lua (https://github.com/neomantra/lua_ipython_kernel)
- LuaJIT/Torch (https://github.com/facebook/iTorch)
- Go (https://github.com/takluyver/igo)
- Erlang (https://github.com/robbielynch/ierlang)
- OCaml (https://github.com/andrewray/iocaml)
- Perl (https://metacpan.org/release/Devel-IPerl)
- Perl6 (https://github.com/timo/iperl6kernel)
- JavaScript (https://www.npmjs.com/package/ijavascript)
- node.js (https://gist.github.com/Carreau/4279371)
- Bash (https://github.com/takluyver/bash_kernel)
- その他もろもろ
現時点で使える全てのJupyterカーネルは以下のページを参照。
IPython kernels for other languages
他言語カーネルを使ったノートブックの実例は以下のページを参照。
んで、今回の主題でもあるIPython Notebook (Jupyter) + Rはこんな感じ。基本的にはNative R kernel for IPythonにある通りやると吉。OSX Yosemite (10.10.2)+MacPortsで環境構築したら途中でエラーを吐かれましたが、cppzmq
をMacPortsで追加したらなおりました。
Rに最初から含まれているirisデータセットで線形回帰をするとこんな感じ。こりゃイイや!