使用 map2() 处理多输入来模拟数据
当您只需遍历一个列表时,map() 很好用。不过,您经常需要同时遍历两个列表。这就是 map2() 派上用场的地方。map() 将列表作为 .x 参数;而 map2() 接受两个列表作为参数:.x 和 .y。
为了试用 map2(),您将创建一个简单的数据集:一个数字列表和一个字符串列表。然后把这两个列表配对,生成一些模拟数据。
本练习是课程的一部分
使用 purrr 掌握函数式编程基础
练习说明
- 创建一个
means列表,包含数值 1 到 3,并且每个值是一个独立元素。 - 创建一个
sites列表,包含 "north"、"west" 和 "east"。 - 使用
map2()遍历sites和means列表,创建一个包含两列的数据框。- 第一列为
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