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のインタフェースはわかりやすく、ほとんどの場合は直感的に理解できると考えています。 ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access