これはRStudio Advent Calendar 2017とtidyポエム Advent Calendar 2017の22日目の記事です。クロスポストご容赦ください。
tidyたいぎぃ
「たいぎぃ」とは広島弁で「めんどくさい」とかそういうニュアンスの方言です。老若男女問わずに「あーもうこれやるんたいぎぃわー」といった感じで使ってます。なお私は広島県民になって20年以上経過しましたが,未だに無意識で「たいぎぃ」という言葉を発するまでには至ってません。「じゃけぇ」は使うのに。
閑話休題。Rで分析環境を整えようとするなら,少なくとも以下のような手順が必要になるかと思います:
- マシンにRをインストール
2. R本体をインストール
3. (必要であれば)Rtoolsといったコンパイラをインストール - マシンにRStudioをインストール
- Rを起動して必要なパッケージをインストール
4. パッケージをCRANなどから持ってくる
5. (必要に応じて)R外のライブラリなども入れる
結構面倒ですね。そしてtidyverseはパッケージが多く,いくらinstall.packages("tidyverse")
で入れられるといえ,結構時間かかります。「たいぎぃ」です。
さらに,これがたったひとつのマシンならいざ知らず,複数台を所有(or管理)している,さらにOSもWin, Mac, Ubuntuなどバラバラだったらどうでしょう。これはもう「くそたいぎぃ」ですね。
というわけで,Dockerを利用します。
Dockerでtidyな分析環境を構築
DockerでR環境?
Dockerを利用してR+RStudioの分析環境を構築する方法や手順については,すでに私自身や他の方の記事がありますので,それらを紹介するに留めます。ぜひともRユーザーの方は一読をおすすめします:
-
Reproducebility 100倍 Dockerマン
- teramonagi氏によるスライド。tokyor/rstudioイメージの紹介
-
Dockerを利用してrstanがすぐ使えるRStudio Serverの構築2017年版
- rstanユーザー向けに準備したイメージの話。これの一つ前の話の方が解説おおいかも
-
Rから離れたくない人向けのDocker環境の操作: RStudio Serverを分析・開発の基盤にするために - まだ厨二病
- うりさん( @uri )の記事で,RからDockerを操作する方法や各種リンクなど情報がたくさん
rocker/tidyverse
イメージ
RのDockerイメージとして最も有名なのがRocker Projectです。リンク先を見てもらえればわかるように,様々なイメージが公開され,日々更新されています。
その中でも,rocker/tidyverse
というイメージに注目してください。これはtidyverseな環境を一気に持ってきてくれるイメージで,今回のコンセプトにバッチリです。なお,このイメージに関する説明はDockerHubにあるこちらの説明を参照してください。
さて,「じゃあもうrocker/tidyverse
イメージを利用してコンテナ作れば解決じゃね?」と言いたいところですがそうはいきません。このイメージはあくまでグローバルなもので,日本(日本語)向けではありません。タイムゾーンや日本語化,そして日本語フォントなどの設定をしなければいけません。これは「たいぎぃ」ですね。
tokyor/rstudio
イメージがある
2017/12/25 13:49追記: Dockerイメージの管理をtokyorから切り離し,別途rocker-jpというのを立てることにしました。次節へ飛ばしてください。
これらを現在クリアしているのがtokyor/rstudio
イメージです。実はこのイメージは先日まで古いバージョンのままでしたが,先日私もSource Repogitory側の方へcontributorとして入りましたので,いくつか修正を行いました。
-
FROM
をrocker/hadleyverse
からrocker/tidyverse
へ変更 - 日本語用フォントとしてIPA系フォントを導入1
-
rocker/tidyverse
をリンクさせることで,リンク先のリポジトリがupdateされた時に自動的にリビルドするように
1により,Rの最新版,RStudio Serverの最新安定版へ移行し,tidyverseなパッケージ群も新しい物が導入されるようになります。また,また日本語も新たに追加しましたので,すんなりとggplot2などで日本語をplotしたりできます。さらに3にあるように,更新も自動的になりました。
つまり,tokyor/rstudio
イメージでコンテナ作ればOK…なのですが,メンバーで協議した結果,新たに組織を作って運用していくことにしました。
そしてこれからはrockerjp/tidyverse
へ
前節のとおりなのですが,tokyorでDockerまわりを続けるのもなぁということで切り離すことになりました。その名もrocker-jpです:
- https://github.com/rocker-jp (GitHubサイト)
- https://hub.docker.com/u/rockerjp/ (DockerHubサイト)
現在tokyor/rstudio
で準備していたDockerイメージをそのままrockerjp/tidyverse
として移行し,またrocker/verse
を日本語化したものをrockerjp/verse
として準備しています。
今後はこちらで運用していくこととなりますので,よかったら今後もチェックしてもらえればと思います。
今後のお話
せっかくcontributorに入れてもらえたので,もう少しいろんなイメージを準備できたらなと思ってます。今のところディスカッションしているのはrockerの中のイメージをベースに日本語環境を整えたものを提供する,などです。いつになるかはわかりませんが,ぼちぼちとやっていきたいと思ってます。
「まだ自分にはDockerなんてよくわからないし難しそう…」と思わずに,ぜひ一度試してみてください。そして「たいぎぃ」から開放されましょう。
Enjoy!
-
2017/12/21 22:30時点では,IPAMinchoとIPAGothicが入っていますが,近々IPAexMinchoとIPAexGothicに切り替える予定です。 ↩