Paul Teetor (2011 / 木下 哲也 訳 2011) R クックブック (初版の読書メモ)

  • Paul Teetor, 2011: R Cookbook: Proven recipes for data analysis, statistics, and graphics. Sebastopol CA USA: O’Reilly. xviii+413 pp. ISBN 978-0-596-80915-7.
  • Paul Teetor [ポール・ティーター] 著、大橋 真也 監訳、木下 哲也 訳, 2011: R クックブック。オライリー・ジャパン, 352 pp. ISBN 978-4-87311-533-7. [わたしはこの版を読んだ。]
  • J. D. Long and Paul Teetor, 2019: R Cookbook: Proven recipes for data analysis, statistics, and graphics. 2nd ed. O’Reilly, xvii+579 pp. ISBN 978-1-492-04068-2.
  • J. D. Long & Paul Teetor 著, 大橋 真也 監訳、木下 哲也 訳, 2020: Rクックブック 第2版。オライリー・ジャパン, 584 pp. ISBN 978-4-87311-885-7.

わたしはデータ解析を、1980年代以来、おもにFortranでプログラムを組んでやってきた。1980年代にBell研究所で開発された「S」をつかいたいと思ったが、有料ソフトウェアだったのでなかなか手がでなかった。Sの互換からはじまったフリーソフトウェアである「R」に期待した。ちかごろは、教材も、研究用のデータ処理も、なるべく R でやろうと思っている。しかし、いまだに熟練していない。

2019年11月、Rによる実習の教材をつくっていて、参考書がほしくなり、数冊買ったうちに本書(初版の日本語版、2019年3月の7刷)がふくまれていた。しかし、そのときわたしは入門書で手いっぱいで、本書は「つんどく」になっていた。

2020年12月にまた実習の教材をつくっていて、本書を思い出した。2020年1月に出た第2版の日本語版を店頭で見ていたので、それを買うかどうかまよったが、基本はかわっていないはずだから、手もちの初版を読むことにした。やろうとしていたことがわりあい短いプログラムでできることがわかって助かったことがいくつもあった。

出版社の本書のページ http://www.oreilly.co.jp/books/9784873115337/がある。そこに目次があるので、目次の書きぬきは途中でやめた。

本書は「どういうことがやりたいならば、R のどの機能をどのように使ったらよいか」という態度で書かれた本だ。1990年代ごろの日本でよくつかわれた表現によれば「逆引きマニュアル」といえる。この表現は、ソフトウェアの公式マニュアルが、機能の名まえから作業内容のほうにむかうもので、作業内容から機能を見つけにくいものになりがちなことを反映している。その後、利用者のたちばにたつマニュアルもふえてきた (したがって「逆引き」のような表現が不適切になった) と思う。しかし、とくに多数の人がボランティアでかかわるオープンソースソフトウェアのばあいは、公式マニュアルのほかに、本書のようなものが必要だ。

本書初版の日本語版について、出版社は思いきったことをした。原書の全14章のうち第1-3章を印刷するのをやめ、「付録」として出版社の本書のページにPDFファイルをおくだけにしたのだ。その部分の内容はすでに R の入門書で読んでいる人が多いだろうという判断らしい。日本語版の1-11章は、原書4-14章の訳である。日本語版の章の題名を列挙しておく。

  1. 入力と出力
  2. データ構造
  3. データ変換
  4. 文字列と日付
  5. 確率
  6. 一般統計学
  7. グラフィックス
  8. 線形回帰とANOVA
  9. 便利なテクニック
  10. 高度な数値計算と統計
  11. 時系列分析

おもに統計学的データ解析の方法をあつかう章もある。5章は理論的に知られた確率分布にかかわる計算など、6章は基本統計量の計算や検定など、8章は線形回帰など、10章は主成分分析や因子分析など、11章は時系列の自己相関やARIMAモデルのあてはめなどの話題がある。10章には関数の最大・最小をもとめることや行列の固有値・固有ベクトルなど、統計学にかぎらずつかう数値計算の話題もある。

わたしの観点で重要なのはむしろそれ以外の「統計学以前」のことがらだ。

1章ではデータの読み書きをあつかう。たとえば、データをCSVファイルから読んだり、CSVファイルに書き出したりするにはどうするか。ふつうに実行すると画面に表示される文字列をファイルにしまうにはどうするか。

2章では、Rがもっているデータ形式の説明と、その形式のデータをつくるにはどうするか、他の形式とのあいだの変換はどうするかの説明がある。「ベクトル」「リスト」「データフレーム」「行列」「ファクタ」などがでてくる。ベクトルとリストはどちらもデータ列ではあるが、ベクトルは同質なものの列、リストは異質でありうるものの列だ、という説明が重要だと思う。Rでは「行列」(matrix)はベクトルの一種で2次元の配置をもつものだ。同様に3次元以上の配置を持つ配列もありうる。「ファクタ」(factor)は(本書の表現ではなくわたしの理解だが)定性的あるいは離散的な値をもつデータの列だ。

3章では、ベクトルやリストの要素にいっせいに関数を適用するにはどうするか、ベクトルを(ファクタによって)グループにわけるにはどうするか、などの話題がある。

4章では、まず、文字列の処理のしかたが説明されている。これはプログラム言語ごとにちがうので R ではこうだという知識がまとめられているのがありがたい。(Awkになじんでいるとそれと同じですむことが多いのだが、length が文字数でないことなどは注意が必要だ。)
それから日付のあつかいの話題になる。R では、日付をあつかう Date と、日時をあつかう POSIXct、POSIXlt の「クラス」がある。POSIXctは1970年1月1日からの秒数で、POSIXltはそれを変換して「年、月、日、時、分、秒」などにわけたものだ。なお、「ユリウス日」(Julian day)は R では1970年1月1日を0としたとおしの日付を意味するそうだ。天文学のユリウス日と原点がちがう。これはほんとうだろうか、本書の著者のかんちがいだろうか?

7章では、グラフィックス機能が、Rの base にふくまれている graphics パッケージでできる範囲で、説明されている。散布図、棒グラフ、箱ひげ図、ヒストグラムなどだ。回帰直線やそのほかの直線をくわえる方法、1ページに複数の図を配置する方法の説明もある。

おもにここまでの章について見たところ、「レシピ」の項目のうち半分ぐらいは、その役わりをする関数名をしめすことがおもな内容で、あとは関数名からひくマニュアルがあればつかえそうだ。「レシピ」の項目と関数名のリストをつくってしまえば、本書のそういう部分の本文はもう読まないかもしれない。しかし、のこりの半分くらいは、ほかの機能ももつ関数の特殊なつかいかただったり、コンマや角かっこなどの記号を注意深くつかいわける必要のあるものだったりする。そういうものの需要が生じたときには本書の「レシピ」の本文を読みかえすことになるだろう。

One thought on “Paul Teetor (2011 / 木下 哲也 訳 2011) R クックブック (初版の読書メモ)

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください