Rの基礎とプログラミング技法(リゲス著・石田 基広 翻訳)

Rの基礎とプログラミング技法
U.リゲス
シュプリンガー・ジャパン(株)
売り上げランキング: 41558
学生にRの言語の勉強をして欲しくて、本を探している。Rを使ったデータ解析について書かれた本のR入門は、自分でRを用いて開発する段になると、正直舌足らずで役に立たない。多くの本はコピペで動く統計関数を提供するものなので、コピペ+改変に十分な程度の文法知識を提供すればよく、その目的で書かれているためだ。その点、この本(リゲス本)は、Rの関数型の文法構造やデータ構造に触れており、候補として、この本を読んだ。久々に言語の本としてはまじめに読んだ。まじめに読めるレベルの本である。
一方で不満も多い。まず、本の表紙裏には「本書は、プログラミング経験の無い読者向けにRとは何か、何ができるのか、なぜRでプログラミングなのか、から説きおこし・・・」とあるが、私の見立てでは、この本はプログラム経験の無い人に読むのはつらい。プログラムの独学にチャレンジした事があり、関数型言語(SやRを含む)を触ったことがあり、基礎統計もかじったことがある、という3つが揃っている人が、Rの特徴を短期間で学ぶ、と考えた場合、必要な項目が非常に簡潔に書かれている良書である。プログラム経験の無い人につらいのは、本の中で未定義語が突然出てくることがあるためである。たとえば「型」がほとんど説明されていない、また、引数の話もほとんどされていない。つまり、関数型言語の強力さがわかりにくい。次に、関数型言語に触れた事が無い人も、つらいかもしれない。全ての変数や記号が「関数」として定義されているという何度か出てくるくだりにとまどいそうだ、CやPerlしか触れたことの無い人は、とまどうだろう。また、無名関数の様なものは、関数型言語では重要な役割を果たすが、ほとんど説明がない。そして、索引にも無名関数が現れない!(索引が全く充実していないのは、この本の決定的な欠点。著者は、Rはヘルプが充実しているから、ヘルプを見て下さいと誘導しているのは納得するが、この本の中で検索したい場合に検索が出来ない)。最後に、線形回帰の話などが突然出てくるので、統計の話を何も知らない場合には、別に調べて下さい(本当に、何も知らない場合には、統計の本をあたるべきか、プログラミングの本をあたるべきか、分からないですよね。また、線形回帰を知らないと、7章のモデルは全く読めない。知っていても、この章のRの説明が舌足らずでつらい気がしますが・・・)
以上、入門書と考えた場合の不満点を述べたが、全体としての出来は及第点の本である。特に、入門書以上、マニュアル以下のレベルを簡潔にまとめたという点で見ると、本当にRの文法に関する本は不足しているので、唯一無二。Rは、関数型言語であること、データフレームというデータ構造を駆使している事、ベクトル演算を主としていること、が特徴である。これらについて、解説している本は今のところ他に見たことがない。
また、私はこの本を読んで、私自身がRについて全くしっくりいかない部分が、S3メソッドとS4メソッドという基としている文法バージョンの違いから来ていることが、はじめてわかった(丁度、Perl5が出た時の用に、OOPで書かれている所とそれ以外が混在して読みにくいプログラムになっている状態だと認識した)のは有意義であった。