はじめに
Jupyter notebookはデータ解析をする上で素晴らしい環境だと思います。
ただ、RをJupyter notebook上で動かす環境を構築する際、よくまとまった資料が無かったので
備忘録も兼ねて書き留めておきます。
特に、表題の通りDockerを使って、仮想化と再現性を担保しつつ、R上でjupyterを使う環境を簡単に構築することを目的とします。(なるべくDockerとかanacondaとか知らない人でも構築できるようにしているつもりです。)
なお、この記事は Windows 10 Pro または Enterprise の方を対象としています。
Macの方
以下のリンクへどうぞ。
私のデータ解析環境構築 for Mac (Docker + anaconda + Jupyter + R)
windows 10 pro, Enterprise 64bit 以外の方
Docker ToolBoxを使えばおそらく同じようにできると思いますが,試してないです.すみません,,,
こんな人におすすめ
- R言語でデータ解析したいけどpythonも使いたい
- 環境は仮想化しておきたい
- 綺麗なインターフェースを使いたい
- 解析結果の再現性を担保したい
- 簡単に環境構築したい
環境構築
仮想化技術を使っている方へ:
バックエンドが Hyper-V らしいので、VMWare Player と共存ができないので注意してください。
1. dockerをインストールする
ログインまたはアカウント作成後、
Docker Store(windows)からインストーラをダウンロードして,コマンドプロンプトを開き
docker info
を実行できればインストール成功です。
mac編ではスクリプトを組みましたが,windowsはよくわからなかったのでコマンドを直打ちします.
2.Jupyter Notebookを保存するディレクトリを作成し,コマンドプロンプトでそのディレクトリに移動する
cd \〇〇\〇〇〇〇\〇〇〇
3.r-jupyter notebookイメージをpullする
終わるまで割と時間がかかります
docker pull jupyter/r-notebook
4. イメージからコンテナを作成します.
docker run --rm -p 8888:8888 --name r_analysis -v "%cd%":/home/jovyan jupyter/r-notebook
5. コマンドラインに表示されたURLにアクセスします.
ただし,前半の
http://(efef3b9b0d5d or 127.0.0.1):8888/?
みたいな部分を,
http://127.0.0.1:8888/?
に変更してアクセスしてください.(efef3b9b0d5d に相当する文字と()をとってください)
Jupyterが無事開けば完了です!
お疲れ様でした。
次からは
docker run --rm -p 8888:8888 --name r_analysis -v "%cd%":/home/jovyan jupyter/r-notebook
で 指定されたURLにアクセスすることで Jupyter を立ち上げることができます.
※注意:閉じる時は必ずセーブ(左上の保存ボタンまたは ctr+S)をしたあと、
quitボタンでサーバをシャットダウンしてから閉じるボタンで消してください。
もし忘れてしまった場合は、コマンドライン上で ctr+C を押して停止させてください。
hello R
ではこの環境で hello R してみましょう。
(閉じてしまった方はもう一度Jupyterを立ち上げましょう。立ち上がらない場合は、すでにサーバが立ち上がっているのかもしれないので、
docker ps -a -f 'name=r_analysis' --format "{{.ID}}"
を実行し,文字列が出てきたらコピーして,
docker rm 出てきた文字列
を実行してからもう一度トライしてみましょう)
次に、Jupyterの画面左上の newボタンを押して、Rを選択しましょう.
最後に、セルに
print("Hello, R")
と打ち込んで実行してみましょう。
下のイメージのようになれば成功です!
参考までに、Jupyterの主要なボタンも紹介しておきます。
どうでもいい話
コレって結局何?というお話です。
-
docker
仮想化環境です。簡単に説明すると、コンテナという単位でアプリケーションの実行環境を分離する環境を構築するツールです。これを使うメリットとして、
- OS等に依存せずに(どこでも誰でも)同じように動かせる環境が作れる
- 環境が壊れたらその仮想化環境を削除すれば良いだけ(本体に影響を及ぼさない)
などのメリットがあります。
-
anaconda (miniconda)
もともとは、pythonの科学計算に特化したパッケージマネージャ兼仮想化ツールです。
今回はjupyterとR関係のモジュールを簡単かつ素早くインストールする目的で使いました。 -
jupyter
プログラムや説明の文章、実行結果などをまとめて管理できる、データ分析用のツールです。
ブラウザで動作するため、いろいろなOSから利用できる、解析の再現性が高い、インタラクティブな解析が可能等のメリットがあります。 -
R
言わずもがな。
統計解析が得意な言語です。
まとめ
今回はJupyterでRを使う環境を構築しました。
使いこなすにはdockerの知識もある程度必要?かもしれませんので、
気になったら学習してみてください。