6章データ変換

従来のプログラミング言語ではループを使いますが、Rではベクトル化された演算とapply系の関数を使うことで、データを一括して処理し、計算を大幅に合理化できます。Rでは、データを任意の塊に分割して塊ごとに処理するループを書くことはできませんが、ベクトル化された関数によって、多くの場合はコードの速度、読みやすさ、メンテナンスのしやすさが向上します。

最近では、tidyverse(具体的にはpurrrパッケージやdplyrパッケージ)によってRに新たな用法が導入され、このような概念が学びやすくなり、一貫性も少し改善しています。purrrという名前は「Pure R(純粋なR)」という意味です。「純粋な関数」とは、関数の結果が入力だけで決まり、副作用が生じない関数です。これは関数型プログラミングの概念ですが、この概念を理解しなくてもpurrrを十分に活用できます。ほとんどのユーザは、purrrにはdplyrなどの他のtidyverseパッケージと同様にデータを「塊単位」で処理するのに役立つ関数があることを知っていれば十分です。

R baseパッケージ関数には、多くのapply系の関数があります。applylapplysapplytapplymapply、そしてこれらに関連するbysplitです。これらの関数は、長年の間、R baseパッケージの主力となっている頼りになる関数です。ここで、apply系関数と新しい「tidy」手法のどちらを主に使うべきか少し悩みました。検討した結果、purrr手法を説明し、R標準手法も認め、場合によっては両方説明するようにしました。purrrdplyrのインタフェースはわかりやすく、ほとんどの場合は直感的に理解できると考えています。 ...

Get Rクックブック 第2版 now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.