purrr で反復処理をシンプルに
とても良い for ループを書けていますが、複数のファイルをリストに読み込むだけのシンプルな処理に、かなりのコード量が必要になっています。ここで purrr の出番です。purrr::map() を使えば、for ループと同じことをコード1行で実現できます。map() はリストを走査し、.f 引数で指定した別の関数を各要素に適用します。
map() は次の2つの引数を取ります:
- 1つ目は、反復処理の対象となるリスト
- 2つ目は、リストの各要素に対して実行する関数
readr ライブラリはすでに読み込まれています。
この演習はコースの一部です
purrr で学ぶ関数型プログラミング入門
演習の手順
purrrライブラリを読み込みます(R が3つあることに注意)。- 前の演習の for ループを、代わりに
map()で再現します。同じリストfilesと、同じ関数readr::read_csv()を使ってください。 all_files_purrrの長さを確認します。
実践的なインタラクティブ演習
このサンプルコードを完成させて、この演習に挑戦してみましょう。
# Load purrr library
library(___)
# Use map to iterate
all_files_purrr <- map(___, ___)
# Output size of list object
length(___)