開始使用免費開始

迭代入門

想像你需要讀入數百個結構相似的檔案,並對它們執行某個動作。你不會想為了讀檔或執行動作而寫上百行重複的程式碼。更好的做法是對它們進行「迭代」。迭代就是把相同的處理流程套用到多個輸入上。掌握迭代能讓你的程式碼更有效率,處理清單時也特別有威力。

在這個練習中,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(___)
編輯並執行程式碼