Norman Matloff (2011 / 木下 哲也 訳 2012) アート・オブ R プログラミング

  • Norman Matloff, 2011: The Art of R Programming: A Tour of Statistical Software Design. San Francisco: No Starch Press.
  • Norman Matloff [ノーマン・マトロフ] 著, 大橋 真也 監訳, 木下 哲也 訳, 2012: アート・オブ R プログラミング。オライリー・ジャパン, 367 pp. ISBN 978-4-87311-579-5. 出版社のこの本のページhttps://www.oreilly.co.jp/books/9784873115795/

英語原書は2011年、日本語版は2012年に出た本だが、わたしは2019年11月に買い、2020年12月になって目をとおした。『R クックブック[読書メモ]と、日本語版の出版社も同じで装丁もだいたい同じ(絵はちがうが)で、買ったときには気づかなかったが監訳者・訳者も同じだ。別々の本屋で見つけたので、持ち帰ってならべてみるまで、同じ本を二重に買っていないか心配だった。

日本語版題名が、英語をそのまま かたかな にして、冠詞を省略したものだ。ちかごろ映画などでよく見られる形だが、わたしには気もちよくない。日本語会話中でも英語題名がとびかっているばあいにはそれが適切なこともあるが、本書はそれほど有名でもないと思う。わたしならば「Rプログラム技法」としたいところだ。ただしこれは「プログラムする」という日本語の動詞が生きていることを前提とした表現だ。

著者はアメリカの大学教授で、まず数学をまなんで統計学の教授になり、コンピュータサイエンス学科にうつって、(本書の表現ではないが) データサイエンスのための技術をおしえている。

本書は、プログラミング言語としてのRについての、わりあい体系的にかかれた教科書だ。統計学にはふみこまない。後半は、Rで複雑な計算を効率よくおこなうための技法をあつかっている。

日本語版出版社のこの本のページに目次があるので、目次の書きぬきはしないことにする。

「はじめに」で、R は、オブジェクト指向プログラミングも関数型プログラミングもできる言語だということがのべられている。

第1章は、Rへの導入だが、すでに何かプログラム言語を知っていて、付録Aの単純な記述にもとづいてRをインストールできる読者が、短時間でRの特徴をつかむことを想定して書かれていると思う。

第2章から第6章では、R のもつデータ構造をそれぞれとりあげて、その操作を説明する。第2章でベクトル(vector)、第3章で行列(matrix)および多次元の配列(array; 行列は2次元の配列だ)、第4章でリスト(list)、第5章でデータフレーム(data frame)、第6章でファクタ(factor)と表(table)をあつかう。

第7章が、プログラム言語としての R の特徴をのべたところだ。第7章では、まず基本的制御構造 (順次処理、ループ、条件別処理)と演算子の説明がある。それから、関数について、引数、戻り値、関数はオブジェクトでもあること、変数のスコープ、再帰などの説明がある。

ひとつ重要なこととして、R にはポインタがない。Cなどとちがって、関数から複数の要素を返すのはむずかしい。グローバル変数をつかうことには弊害もあるけれども、R ではそれが実用的に適切なこともある。

第8章は数学演算。最大・最小値、微積分、整列(sorting)、線形代数演算、集合演算、乱数など。

第9章はオブジェクト指向プログラミングで、「S3クラス」と「S4クラス」について (わたしはまだ理解していない)。

第10章は入出力。キーボードと画面へのアクセス、インターネットへのアクセスの話題もあるが、おもにファイルの読み書きについて。第11章は文字列操作。

第12章はグラフィックス。plot 関数をはじめとする、R の base にふくまれる graphics の機能でできること。

第13章からがプログラミング専門家むきの技法といえるだろう。(R 初級者であるわたしにとって、この部分はむずかしい。しかし、初級者にしては大量のデータをあつかうことになりそうなので、第14章の知識は必要になるかもしれない。) 第13章はデバッグ。まずデバッグの一般論がでてくるが、Rのデバッグ機能のつかいかたがおもだ。第14章は高速化やメモリ節約の方法。第15章は他の言語とのくみあわせ。RからCやC++を呼び出す方法、PythonからRを呼び出す方法。第16章は並列処理。「snow」パッケージの利用、OpenMPの利用など。

なお、例題の題材としておもしろかったものとしては、中国語の学習支援のための、漢字の広東音と北京音(「普通話」という表現にもふれたうえで「マンダリン」と呼んでいる)を相互参照するデータ処理があった。

コメントを残す

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

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