6章データ変換
従来のプログラミング言語ではループを使いますが、Rではベクトル化された演算とapply
系の関数を使うことで、データを一括して処理し、計算を大幅に合理化できます。Rでは、データを任意の塊に分割して塊ごとに処理するループを書くことはできませんが、ベクトル化された関数によって、多くの場合はコードの速度、読みやすさ、メンテナンスのしやすさが向上します。
最近では、tidyverse(具体的にはpurrr
パッケージやdplyr
パッケージ)によってRに新たな用法が導入され、このような概念が学びやすくなり、一貫性も少し改善しています。purrr
という名前は「Pure R(純粋なR)」という意味です。「純粋な関数」とは、関数の結果が入力だけで決まり、副作用が生じない関数です。これは関数型プログラミングの概念ですが、この概念を理解しなくてもpurrr
を十分に活用できます。ほとんどのユーザは、purrr
にはdplyr
などの他のtidyverseパッケージと同様にデータを「塊単位」で処理するのに役立つ関数があることを知っていれば十分です。
R baseパッケージ関数には、多くのapply
系の関数があります。apply
、lapply
、sapply
、tapply
、mapply
、そしてこれらに関連するby
とsplit
です。これらの関数は、長年の間、R baseパッケージの主力となっている頼りになる関数です。ここで、apply
系関数と新しい「tidy」手法のどちらを主に使うべきか少し悩みました。検討した結果、purrr
手法を説明し、R標準手法も認め、場合によっては両方説明するようにしました。purrr
とdplyr
のインタフェースはわかりやすく、ほとんどの場合は直感的に理解できると考えています。 ...
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.