niszetの日記

細かい情報を載せていくブログ

RユーザのためのRStudio[実践]入門−tidyverseによるモダンな分析フローの世界− (通称宇宙本)を読んだ感想

珍しく?感想文です。

RユーザのためのRStudio[実践]入門−tidyverseによるモダンな分析フローの世界−、通称: 宇宙本を先日読み終わりましたので感想を書いてみようかなと思います。と、書き出しを書いてから結構時間がたってしまいました。

出版社さんのサイトはこちら。pdf版もありますよ。

gihyo.jp

おすすめの一冊ですよ

今まで「Rで〇〇」といった書籍は(特にここ最近)非常にたくさん出版されていましたが、RStudio IDE+tidyverseパッケージ群についてのまとまった1冊といったものはなかったので、この隙間を埋める良い一冊だと思います。

注意点のようなもの

ただし、本書の「はじめに」でも触れているように、分析全般とパッケージ開発やShinyについては触れられていないです。

また、たとえばRのインストールの方法、ベクトルやデータフレーム、基本的な文法については宇宙本には載っていません。そのため、これらの知識については別の書籍やネットの情報から得る必要があります。まぁこの辺りは調べれば結構出てくるので、いろんな書籍でこの部分を書く必要はないと思うので個人的にはなくてもよいと思いますが。

そんなわけで、Rのガチ初心者が最初に読む、1冊目ではないという点には注意が必要です。

ということで、おススメなタイミングはRの基本的なことが分かった時点か、tidyverseをちょっと触り始めたところで読むとよいかなと思います。また、以前からRを使っていた方で、RStudio+tidyverseについてはあまり知らないなぁ・・・という人にも効果が大きいですね。ある程度R+RStudio+tidyverseを触っている…という人でも何かしらの学びがあると思いますのでぜひ1

Rガチ初心者の方が最初に取るべき1冊が何かについては検討中ですが、安牌はコレかな…。

www.oreilly.co.jp

こちらは目次を見ればわかる通り、Rガチ初心者向けの内容になっています。私もちゃんとR使うようになる時はコレから始めましたね。
ただ、自分は独学で始めたのでこの本が必要でしたが、基礎的な内容なので周りに聞ける環境があるならば、まずは聞いてみた方が良いでしょう2。知識を体系化したい場合はまとまった文章で理解して行った方が良いので、

この本はRStudioを使うことを前提としているので、宇宙本にもつなげやすいのでは?と思います(読んだのがずいぶん前だからうろ覚えですが)

1章

RStudio IDEの機能についての説明。意外と?ネット上でもまとまった情報が少なく、公式のチートシートとかを読み解かないといけなかったり(チートシートが最新でない場合もあり)、触り始めた人にはありがたい章だと思います。また、僕みたいに雰囲気で使っている人は「こんな機能/設定があったのか!」という発見があると思います。私も細かい設定も追っておいたほうが良いですね…。
また、データの読み込みについても触れられています。Tokyo.Rの入門編のData Import編をさらに入りやすくしたイメージですね。

2章

分析するためにはデータが必要、ということでスクレイピングによってデータを収集するための方法が書かれています。
スクレイピングはHTMLの構造、パッケージの使い方とその後処理(分析に対しては前処理)と初心者には比較的敷居の高め(必要となる知識が広く要求される)ですが、要点を絞って書かれているのでまず押さえるべきところがどこかがわかると思います。

この章の続きになる本としては、C&R研究所 の Rによるスクレイピング入門

出版社のページ 書籍詳細|株式会社 C&R研究所

サポートサイト github.com

がおすすめです。

また、共立出版の Rによる自動データ収集―Webスクレイピングテキストマイニングの実践ガイド―

www.kyoritsu-pub.co.jp

もありますが、こちらのほうが分量も多く発展的内容もあるので自分がどこからどこまでやればよいのか次第で読むとよいのかなと思います。niszetは買ったまま積んでしまっています。。。

また、この章の特徴としてRSeleniumパッケージを使用していることがあげられるかと思います。これもあまり情報がないのでありがたいですね。

ただ、RSeleniumパッケージは今はarchiveされているんですよね…。
https://cran.r-project.org/web/packages/RSelenium/index.html

…が!

しかし先日、archive理由のwdmanパッケージがCRANに復帰しました。

https://cran.r-project.org/web/packages/wdman/index.html

これによって、RSeleniumパッケージ復活は秒読みではないかと思っています。備えましょう。

3章

いきなりgather()spread()が出てくるので面喰いますが、もしまだdplyrパッケージに慣れていなければすっとばして3-3まで行ってしまってよいかなと。まずはselect()filter()が使えれば簡単な絞り込みはできてしまうので。
逆に、その一歩先で躓きがちなgather()spread()group_by()などがまとまっているのが良いですね。個人的にはselect()mutate()のセマンティクスが良かった。これは今後使われ始めるtidyeval()でみんな(私も含めて)躓くところだと思います。この点は(僕が理解出来たら)いつかどこかで。

この章が読めた次に読むべき本といえばR for Data Scienceですかね…。Hadley Wickhamによって書かれているという点でおススメしないはずがなく…。

英語版はオンラインで参照できます。私は書籍版を購入して去年の年始に2.5ヶ月かけて読みましたが、紙の本が欲しいということでなければオンライン版でよいと思います。内容は同じ(はず)

r4ds.had.co.nz

日本語版ならこちらがオライリージャパンから出ていますね。

www.oreilly.co.jp

ただ、この書籍は初心者向きではないと言われていますし実際に内容は結構難しいと思います。あと、日本語版の訳については色々あったらしい(私は購入して積んだので読んでおらず、ノーコメント)

宇宙本はこの本に比べるとかなり敷居が低いので、tidyverseパッケージ群に慣れていない人はR4DSをいきなり読むより宇宙本を見てから入ったほうが無難かな、という気がしますね。読み比べてみてください。

4章

なんとこの章、カラーです。おかげで図が見やすいですね。本気を感じる…。

グループ化、エステティックの変更やファセットから軸の変更や他者との共有まで、ggplot2パッケージでできることを過不足なく、特に詰まりそうなところを要点を抑えて書かれていると思います3。4章のこの内容を抑えるだけでggplot2初心者から脱初心者くらいまではいけるんじゃないかな…。
ggplot2パッケージは出来ることが多いので(しかもどんどん増えている)どこから手を付ければよいのかが迷いがちかと思いますが、まずはこの内容を一式、やってみることをお勧めします。道しるべになると思います。

また、この章の流れがggplot2パッケージなどでデータの可視化を行う際にデータを見ていく順(要約→詳細、など)にもなっていて、実際にデータを見ていくときにどこから見ていけば…?という勘もつけられるのでは?と思います。

この章の次に読むべき本はRグラフィックスクックブック――ggplot2によるグラフ作成のレシピ集ですね。発売から5年たっていますが、やはり手元に置いて参照できるようにしたい本です。 www.oreilly.co.jp

あとは、R for Data Scienceですね。鍛えよう。

5章

〆はR Markdownによるレポート生成。Markdownの基本的な文法、R Markdownのチャンクオプション、出力の設定などなど、R Markdownでドキュメントやレポートを生成するにあたって最初に知っておくべきことがまんべんなく書かれています。この章を読めばRでドキュメントを作れるようになると思います。

R Markdownでドキュメント生成、苦手意識がある人が多い印象ですが、実際にやってみるとそこまで難しくはなく、むしろRで分析した結果をそのままドキュメントにすることができ、しかもコードにすべて落とし込んであれば何度やっても同じドキュメントが作れる、データを差し替えれば同じフォーマットでレポートできる、など利点がたくさんあります。

例によってR Markdownも色々と細かい話や更新によっていろいろと新しい情報が出てきます。細かい部分の調整は少しずつ調べて積み上げていきましょう。

この章の次に読むべき本は下記の2冊ですね。

再現可能性のすゝめ―RStudioによるデータ解析とレポート作成― www.kyoritsu-pub.co.jp

ドキュメント・プレゼンテーション生成 www.kyoritsu-pub.co.jp

EOF

ということで、宇宙本の感想でした。長い…。


  1. 全部余裕でわかりますぜ…って方はぜひ、何か書籍化してほしいですね…ぜひぜひ。

  2. 単純にお財布事情で。Rを使うということは、R以外にも統計分野への書籍の出費もあると思うので、どのくらいのスパンで何をどのくらいやっていくのか?は考えていかないといけませんね。

  3. どこから目線だ。。。