soumen’s blog

子育て、プログラミング、木の育て方など自分の興味のあることを中心に、関連しておもしろかった本などとともに紹介します。

R を学ぶのにおすすめの本

私はこれまでメインで、Rという言語を使ってきました。Rを言語と読んでいいのかは、微妙なところらしいですが・・。Rの公式サイトでも、"R is a free software environment for statistical computing and graphics. "と書いてあって、言語 languageとは言っていないですね。「統計計算のためのソフトウエア環境」とのことです。

 

それはともかく、Quoraで「R を学ぶのにおすすめの本はありますか?」という質問があり、自分の経験に基づいて回答をしたところ思いのほか読んでくれた人がいたようで、高評価ボタンを押していただいたいますので、内容をここにコピーしておきます。

 

ちなみに、Quoraというのは、なんというのでしょう、質の良いQ and Aサイトなのです。本家はアメリカで、日本語版もあります。何が、Quoraの質を高めているのかというと、、なんででしょうね?Quoraについてはまた考えてみたいと思います。

jp.quora.com---

いくつか、私の知っている本を紹介します。ご自分に合いそうなものを選んでいただくと良いと思います。私の場合は、Rを学ぶ前には、他の言語の経験はまったくない状態でした(子ども時代に少しだけやったBASICを除く)。


RユーザのためのRStudio[実践]入門 −tidyverseによるモダンな分析フローの世界−

RユーザのためのRStudio[実践]入門 −tidyverseによるモダンな分析フローの世界−

 

10冊ほどRの本を持っていますが(最後まで読んだわけではない-_-;)、この本はいままでで一番気に入っています。初級から中級へのステップアップという感じです。(本当の初歩から学ぶのであれば、この前に一冊、入門書を読んだほうがよいかもしれません。)

・この本では、Rを動かす環境であるRstudioの使い方が説明されています。Rstudio、便利です!

・ここ数年で広まったらしい、tidyverseというパッケージを使ったRのコードの書き方が身につきます。自分は古いRの書き方を学んでいたのですが、表(データフレーム)の操作(前処理)が、この本で学んだdplyrパッケージを使った方法で、劇的に効率よくできるようになりました(というより、効率よく書けるようになった)。パイプ演算子(%>%)を使って、直感的な書き方ができます(「これをやって、次にこれをやって~、、」みたいに順に書いていける)。

・その他、描画パッケージのggplot2の使い方も、一通り身につきますし、Rmarkdownを使った、再現可能なコード記述(記録をちゃんと残す)の考え方も身につきました。


再現可能性のすゝめ (Wonderful R 3)

再現可能性のすゝめ (Wonderful R 3)

 

 「再現可能性」というのは重要なキーワードだと最近しみじみ感じています。他の本にも書かれていますが、この本は、その再現可能性に重点を置いています。Rmarkdownという書き方で、文章の中にコードと解析結果を埋め込んでレポートやプレゼンテーションを作成したり(.docx, .html, スライド等へ出力できる)、解析結果を導いたRコードの記録の残し方が説明されています。結果だけが残っていても、再現できないと困ります!


Rではじめるデータサイエンス

Rではじめるデータサイエンス

 

こちらは、そもそもRstudio, tidyverse, ggplot2の中心的開発者であるHadley Wickham氏の著書なので、本家に当たるという意味で良いかもしれません。上の本では触れられていない、stringrをつかった文字列操作のことなども書かれており、重宝しています。

・この本の英語版と同じ内容は、Web上で無料で読めると書いてあったような気がします。


RStudioではじめるRプログラミング入門

RStudioではじめるRプログラミング入門

 

Rの初歩、およびプログラミング言語的ないろいろなコードの書き方は、この本に詳しいかもしれません。(最後までたどり着いていません、、-_-)


プログラミングR―基礎からグラフィックスまで

プログラミングR―基礎からグラフィックスまで

 

こちらは10年ほど前の古い本ですが、Rを初めて学んだ時に、とても役に立ちました。Rの基本、ファイル操作、if文とかforループの書き方、関数の作り方(これ大事!)、画像の扱い方、など、へーと思うような内容で、今でも手元に置いて、かつて蛍光ペンでマークした箇所を読み返したりして参照しています。ただし、今読むにはコードの書き方等古いかもしれないので、新しい情報は別の本で補うとよいでしょう。(といっても、使えない訳ではなく、主にbase というRに元から入っている基本的な方法で書かれているという事です。)