迭代入門
想像你需要讀入數百個結構相似的檔案,並對它們執行某個動作。你不會想為了讀檔或執行動作而寫上百行重複的程式碼。更好的做法是對它們進行「迭代」。迭代就是把相同的處理流程套用到多個輸入上。掌握迭代能讓你的程式碼更有效率,處理清單時也特別有威力。
在這個練習中,16 個 CSV 檔案的名稱已載入到名為 files 的清單中。在你自己的工作中,可以使用 list.files() 來建立這個清單。readr 函式庫也已經載入。
本課程會帶到許多你可能一時想不起來的觀念;需要快速複習時,下載並隨手參考 tidyverse Cheat Sheet 吧!
本練習屬於課程
使用 purrr 的函式式程式設計基礎
練習說明
- 建立一個 for 迴圈,對
files清單進行迭代,並將每個元素作為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(___)