開始使用免費開始

用 purrr 進行迭代

你已經寫出一個不錯的 for 迴圈,但為了把一系列檔案讀進一個 list,程式碼寫得相當冗長。這正是 purrr 大顯身手的地方。我們可以用 purrr::map() 在「一行」程式碼裡完成和 for 迴圈相同的工作。map() 會對 list 進行迭代,並搭配以 .f 引數指定的另一個函式。

map() 接受兩個引數:

  • 第一個是要被迭代的 list。
  • 第二個是在該 list 的每個元素上要套用的函式。

已經載入了 readr 函式庫。

本練習屬於課程

使用 purrr 的函式式程式設計基礎

檢視課程

練習說明

  • 載入 purrr 函式庫(注意有 3 個 r)。
  • 使用 map() 來重現上一個練習的 for 迴圈。使用相同的 list 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(___)
編輯並執行程式碼