iPython notebook + R (IRKernel) をセットアップする

iPython notebook + IRKernelでiPythonでrを動かす手順。
そこそこ面倒だし、若干不安定(ggplot2はエラーメッセージが出るみたい)だけど
使えるは使えるのでこんな感じでRのサンプルコードをgithubに公開したいってときには非常に便利かと。

XCode commandline tools をインストール

Terminalから以下のとおり。

 xcode-select --install

インストーラのウィンドウが開くので、手順にそってインストール。

Homebrew インストール

まだ入ってなかったら
まずはHomebrew をインストールする。

Homebrewは、mac用のパッケージマネージャ。
コマンドラインからpythonやらemacsやらgitやら必要なものを一通り入れられるので
macで開発するには必須(だと思う)。

ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
Press RETURN to continue or any other key to abort
==> /usr/bin/sudo /bin/chmod g+rwx /usr/local/sbin /usr/local/share/man/man8
Password:

と聞かれたら、macのログインパスワードを入力してしばし待つ。
無事完了した場合は以下のとおり。

==> Installation successful!
==> Next steps
Run `brew help` to get started

これでインストールは完了。

今後homebrewでいれたコマンドなどをmacのデフォルトより優先して使うためにパスを通す。
Yosemiteでは(前からだっけ)~/.bash_profileや~/.bashrcがデフォルトで存在なくなっているので、注意。
まあ以下のとおり実行すればOK。なければ.bash_profileを新規作成します。

echo "" >> ~/.bash_profile
echo "# set PATH for Homebrew packages" >> ~/.bash_profile
echo "export PATH=/usr/local/bin:\$PATH" >> ~/.bash_profile

# 読み込み
source ~/.bash_profile

以上、Homebrew。

iPython インストール / アップデート

インストールは以下の記事に沿って、Anacondaをとりあえず入れるのが良いと思う。qiita.com

iPythonでpython以外の言語(のkernelのGUIでの切り替え)を使うために
iPythonとiPython notebookとついでにipython-qtconsoleを3以降にアップデートしておく。

conda update ipython ipython-notebook ipython-qtconsole
The following packages will be UPDATED:

(中略)

Proceed ([y]/n)? 

などと出るので、yを打ち忘れないように。

完了したら
ipython --versionを実行して

3.1.0

と出れば良い。

Rインストール

R本体

Homebrewで入れられる。gfortranを直接入れる手順は古いので注意。
2015/5/22現在、rのパッケージがgcc49に依存しているので、以下のとおりインストール。
コンパイルが走るので、激しく時間がかかる(そのうち普通のgccで良くなると思う)。

もしかするとオフィシャルサイトから落としたほうが早いかも。

brew update
brew tap homebrew/science
brew install gcc49 --with-fortran
brew install r    

Rstudio.app

Rstudioを入れたかったらbrew caskを入れて、インストール

brew install caskroom/cask/brew-cask
brew cask install rstudio

# Applicationsフォルダの中ににシンボリックリンクを貼る
ln -s ~/Applications/RStudio.app /Applications/

初期設定

.Rprofile作成・CRANミラー設定

Rの初期設定ファイルは~/.Rprofile。
R用ライブラリのレポジトリCRANのミラーのアドレスをとりあえず設定しておく

echo 'options(repos="http://cran.md.tsukuba.ac.jp")' >> ~/.Rprofile
ホームディレクトリにLibrary用のディレクトリを作る。

Cavertsでも触れられているが、homebrew でアップデートしたときに
デフォルトの設定だとR上で追加したRのライブラリが使えなくなる模様。

mkdir -p ~/Library/R/3.2/library

また、こうしておくとRにてlibrary()関数でインストール済みライブラリを確認した時に

> library()
  パッケージ (ライブラリ ‘/Users/user/Library/R/3.2/library’ 中): 

base64enc               Tools for base64 encoding
 
 パッケージ (ライブラリ ‘/usr/local/Cellar/r/3.2.0/R.framework/Versions/3.2/Resources/library’ 中): 

base                    The R Base Package
boot                    Bootstrap Functions (Originally by Angelo Canty
                        for S)
・・・

というような感じで、自分で入れたライブラリが明確にみえるので良い。

もしくは、自分の好きなディレクトリを使いたいときは
.Rprofileに以下の設定を入れる。

.libPaths(c("/opt/RLibrary", .libPaths()))

上の例では/opt/RLibraryがLibraryの読み込み元に追加される。

IRKernel (ipython notebookでrを使うためのライブラリ)

やっと本題のIRKernelを入れましょう。
以下の公式サイトの手順だけではうまくいかなかった。
まずは依存ライブラリを入れる必要がある。

github.com

Rのコンソールから

install.packages(c('base64enc', 'evaluate', 'jsonlite', 'uuid', 'digest'))

Homebrewから入れているせいかも。
あとは公式サイト通りの手順。

install.packages(c('rzmq','repr','IRkernel','IRdisplay'), repos = 'http://irkernel.github.io/', type = 'source')
IRkernel::installspec()

インストールはこれで完了。マジおつか。

試してみる

ターミナルから

ipython notebook

でipython notebookを起動して、「New」からRを選べば良い。

f:id:nullbyte:20150523054643p:plain

とりあえず以上。