使用 map2() 以多個輸入模擬資料
當你只需要對「一個」列表做迭代時,map() 很好用;但你常常會需要同時對兩個列表做迭代。這時就輪到 map2() 登場了。map() 只接受一個列表作為 .x 引數;map2() 則同時接受兩個列表作為 .x 與 .y 兩個引數。
為了試用 map2(),你要建立一個簡單的資料集:一個是數字列表,另一個是字串列表。你會把這兩個列表組合起來,產生一些模擬資料。
本練習屬於課程
使用 purrr 的函式式程式設計基礎
練習說明
- 建立一個
means列表,包含 1 到 3,每個數值各是一個元素。 - 建立一個
sites列表,內含「north」、「west」、「east」。 - 針對
sites與means列表使用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