用 purrr 進行迭代
你已經寫出一個不錯的 for 迴圈,但為了把一系列檔案讀進一個 list,程式碼寫得相當冗長。這正是 purrr 大顯身手的地方。我們可以用 purrr::map() 在「一行」程式碼裡完成和 for 迴圈相同的工作。map() 會對 list 進行迭代,並搭配以 .f 引數指定的另一個函式。
map() 接受兩個引數:
- 第一個是要被迭代的 list。
- 第二個是在該 list 的每個元素上要套用的函式。
已經載入了 readr 函式庫。
本練習屬於課程
使用 purrr 的函式式程式設計基礎
練習說明
- 載入
purrr函式庫(注意有 3 個 r)。 - 使用
map()來重現上一個練習的 for 迴圈。使用相同的 listfiles,以及相同的函式readr::read_csv()。 - 檢查
all_files_purrr的長度。
動手互動練習
試著完成這個範例程式碼,體驗一下這個練習。
# Load purrr library
library(___)
# Use map to iterate
all_files_purrr <- map(___, ___)
# Output size of list object
length(___)