開始使用免費開始

使用 map2() 以多個輸入模擬資料

當你只需要對「一個」列表做迭代時,map() 很好用;但你常常會需要同時對兩個列表做迭代。這時就輪到 map2() 登場了。map() 只接受一個列表作為 .x 引數;map2() 則同時接受兩個列表作為 .x.y 兩個引數。

為了試用 map2(),你要建立一個簡單的資料集:一個是數字列表,另一個是字串列表。你會把這兩個列表組合起來,產生一些模擬資料。

本練習屬於課程

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

檢視課程

練習說明

  • 建立一個 means 列表,包含 1 到 3,每個數值各是一個元素。
  • 建立一個 sites 列表,內含「north」、「west」、「east」。
  • 針對 sitesmeans 列表使用 map2(),建立一個包含兩欄的資料框。
    • 第一欄是 sites;第二欄由 rnorm() 產生,mean 參數取自 means 列表。

動手互動練習

試著完成這個範例程式碼,體驗一下這個練習。

# List of 1, 2 and 3
means <- list(___)

# Create sites list
sites <- list(___)

# Map over two arguments: sites and means
list_of_files_map2 <- map2(___, ___, ~___(sites = ___,
                           a = rnorm(mean = ___, n = 200, sd = (5/2))))

list_of_files_map2
編輯並執行程式碼