【新刊案内】『改訂2版 RユーザのためのRStudio実践入門〜tidyverseによるモダンな分析フローの世界』

本記事について

2018年6月29日に、技術評論社様より、『 RユーザのためのRStudio実践入門〜tidyverseによるモダンな分析フローの世界』第1版を発売させていただきました。

gihyo.jp

 ありがたいことにご好評をいただき、2021年5月11日現在、第1版は4刷まで発売されています。

そして3年の時を経て、2021年6月3日、いよいよ第2版となる、『改訂2版 RユーザのためのRStudio実践入門〜tidyverseによるモダンな分析フローの世界』が販売予定です(予約受付中)。

gihyo.jp

 第1版は、「#宇宙本」の愛称でご案内させていただきましたが、第2版はデザインを一新し、それに伴い愛称も「#宇宙船本」と改めました。宇宙へいざ旅立とうというメッセージがあるとかないとか。

 

第1版と第2版の違い

1. 最新のRStudioや各種パッケージの機能を反映

これまで、第1版を重版する際にも、最新の内容をある程度は反映して加筆修正を行ってきました。しかし、重版ではページ構成を変えられないという制約があったため、原則として脚注でこっそり最新の内容に言及することしかできませんでした。

第2版では、まるっと書き換えても構わないということだったので、各章、多かれ少なかれ、内容が更新されています。

例えば

  • RStudio 1.2から追加された、Jobsペイン(任意のスクリプトを、現在のプロセスの裏で実行できる機能)
  • サポートが終了したパッケージの削除と、代替パッケージの紹介(特に第2章)
  • パッケージのメジャーアップデートに伴う、新たな関数や記法の紹介(特に、第3章のdplyr/tidyrパッケージ)

などです。

 

僕は第4章(ggplot2を用いたデータ可視化)を担当しているのですが、実は第4章の修正点は少ないです。というのも、ggplot2パッケ―ジはちょこちょこバージョンアップしているとはいえ、根本的な部分はほとんど変化がないからです。そのぶん、第1版では紹介しきれなかった関数を新たに盛り込んだり、最近注目されている(そしてすぐにサポートが終了することはなさそうな)パッケージを新たに紹介したりしています。

主要な変更点を上げると、以下です。

position_dodge()とposition_dodge2()の細かい挙動や違いについて、説明を追加

棒グラフや箱ひげ図など、X軸に離散変数をマッピングした可視化を行う際に、position = position_dodge()という引数が明示的/暗黙的に利用されることがあります。

実はggplot2でX軸に離散変数をマッピングするのは色々と面倒なことが多くて、引数を追加して細かな設定を行わなければいけないことがあります。今回の改訂では、position_dodge()や類似したposition_dodge2()という関数の挙動について、説明を追加しました。

複数のグラフを並べて表示するためのパッケージ

第1版でも3つのパッケージを紹介していましたが、近年ではpatchworkパッケージに注目が集まっています。実は第1版の時点でも(発売直後だったかも)patchworkパッケージはリリースされており、個人的には推したいと思っていたのですが、当時はまだCRANに登録されていなかったので、紹介を見送ったという経緯がありました。

現在ではCRANから容易にインストールが可能になったので、初心者にも安心して薦められます。patchworkの優れているところは、ggplotオブジェクトを+などの演算子で繋ぐだけで容易に図を結合できる点と、レイアウトの自由度が高い点です。

日本語の解説記事もWeb上にはいくつか存在するので、ぜひ使ってみてください。

patchwork.data-imaginist.com

説明しなかったこと:地理空間システム(GIS)のデータの可視化

簡単に言えば、ggplot2で地図を描く方法です。近年のアップデートによって、これが容易に実現できるようになりました。

ggplot2の目玉の1つでもあるので、紹介しようか悩んだのですが、別途必要な知識が増えるので、あくまで本書は入門書であることを考慮し、触れないこととしました。

ただし、この機能について詳しく紹介している書籍(以下)を参考文献に追加しましたので、興味がある方はそちらもご参照ください。

www.kspub.co.jp

 

2. 約50ページ、付録を追加

第1版を出版した当初から、「文字列処理には触れていないのかー」という声をいただいていました。そこで第2版では、

  • stringrパッケージによる文字列データの処理
  • lubridateパッケージによる日付・時刻データの処理

について、計50ページ近く内容を追加しました。僕はこのうち、stringrパッケージによる文字列データの処理を担当しました。自己満足かもしれませんが、かなりお気に入りの内容です。

本書の3章や4章では、一貫してmpgデータセットを用いて説明したように、1つの章の中で同じデータセットを使い続けるということは、読者の認知的な負担を減らすうえで重要だと考えています。

そのため、多様な文字列処理用の関数を適用可能な、文字列データを見つけてくる必要がありました。あーでもないこーでもない、と悩んだ結果たどり着いた答えは...ぜひ本書をお手に取って確かめてください!

またこのパートでは、正規表現についても簡単に紹介しています。正規表現は、Rに限らず様々なプログラミング言語で活用できる技術なので、今後R以外の言語の習得も目指している方にとって、有用だと思います。

ただしstringrパッケージ内で正規表現を用いる際には、少しだけ独特の書き方が必要になる場合があるので、注意してください。

 

最後に

第1版を持っているが、第2版も購入しようか迷っている方へ

これについては、他の著者がブログで言及してくださっているので、ご参照ください。notchained.hatenablog.com

 

y-mattu.hatenablog.com

 

僕個人の意見を言うとすれば...第3章のためだけでも、購入するメリットはあると思っています(僕が書いた章ではないんですが)。これは他の章が相対的に価値が低いということではなく、次の理由によります。

最近のバージョンアップによって、3章で紹介しているdplyrパッケージを用いてデータ整形する際の記法が、大きく変わりました。大きくと言っても、全くの別物という意味ではないのですが、across()where()などの関数を駆使した、新たな書き方を覚える必要がでてきました。正直に言えば、僕自身はけっこう難しくなったという印象を持っています。これから初めて学ぶ人にとっても難しいだろうし、すでに昔の書き方が染みついている人が新たに覚えなおすうえでも難しいだろうと思っています。

※もちろん容易に移行できる人はたくさんいると思いますが

また3章では、第1版でほとんど紹介していなかったtidyrパッケージの関数についても、説明が大幅に増えています。

いずれのパッケージに関しても、図を用いながら挙動を丁寧に説明しているので、イメージが沸きやすいと思います。

 

 

「いや、そりゃ著者にとっては買ってほしいでしょうよ」と思われるかもしれませんが、そういう下心がなく上記のように言っているというのは、信じていただくしかありません。

改訂にあたっての、個人的な思い

発売から3年経っても、未だに購入してくださる方がいること、そして第2版を出版できたこと、本当に嬉しく思います。ありがとうございます。

僕以外の著者3名はいずれもR界隈では有名で、よくご存じの方も多いと思いますが、そんな中にcontributorでも勉強会主催者でも何でもない僕が参加させていただけたことは、この上ない幸運だったと思います。

著者がこんなことをいうのはどうかという気もしますが、執筆しながらも学ぶことが多く、僕自身は著者でありながら読者でもありました。第2版の表紙絵は、宇宙から宇宙船に変わりましたが、この宇宙船は、「皆さんを」乗せる船ではなく、僕自身がその乗客の一人であると思っています。

 

本書が「皆さんと」tidyverseを旅するきっかけになれば幸いです。

Enjoy!!