反復処理の導入
似た構造のファイルを何百件も読み込み、同じ操作を実行する必要があるとします。すべてのファイルを読むために何百行もの同じコードを書いたり、操作を繰り返し書いたりはしたくありませんよね。そこで役立つのが反復処理(iteration)です。反復処理とは、複数の入力に対して同じ処理を行うことです。反復処理ができるとコードを効率化でき、特にリストを扱うときに強力です。
この演習では、16 個の CSV ファイル名が files というリストに読み込まれています。実務では、list.files() 関数を使って同様のリストを作成できます。readr ライブラリもすでに読み込まれています。
このコースでは、忘れているかもしれない多くの概念に触れます。必要になったらすぐ確認できるよう、tidyverse Cheat Sheet をダウンロードして手元に置いておくと便利です。
この演習はコースの一部です
purrr で学ぶ関数型プログラミング入門
演習の手順
filesリストを反復処理する for ループを作成し、各要素をreadr::read_csv()(readrパッケージのread_csv()関数)への入力にします。- その入力を使って、各 CSV ファイルが新しく作成する
all_filesリストの別々の要素として読み込まれるようにします。 all_filesリストのサイズを出力します。
実践的なインタラクティブ演習
このサンプルコードを完成させて、この演習に挑戦してみましょう。
# Initialize list
all_files <- list()
# For loop to read files into a list
for(i in seq_along(files)){
___[[___]] <- read_csv(file = ___[[___]])
}
# Output size of list object
length(___)