用 keep 清理您的数据
从本课程一开始,我们一直在使用一周 A/B 测试的结果。
我们将这些结果放入了一个名为 all_visits 的列表中。该列表包含 visit_a、visit_b 和 visit_c。这些向量尚未命名。它们各自包含 7 个数字,对应一周中的每一天。
我们要先回答的问题是:哪些天的平均每小时访问次数超过了 100?我们将使用 keep() 函数。不过,如果使用未命名向量作答,可读性会很差:您能看到数字,但不知道这些数字对应哪一天。
好消息是:您可以使用 set_names() 函数解决这个问题。本章将按以下步骤进行:先在未命名向量上使用 keep(),再在已命名向量上使用。
本练习是课程的一部分
使用 purrr 的函数式编程进阶
练习说明
- 创建一个 mapper,用于测试
.x是否大于 100。您将使用它两次。 - 将该 mapper 与
keep()结合,映射到未命名列表all_visit上。由于结果未命名,您不知道保留了哪些天。 - 使用我们提供的名称向量,结合
map()和set_names()为每个向量设置名称。 - 在新近命名的列表上再次映射之前创建的 mapper。您会发现,现在更易读了!
交互式实操练习
通过完成这段示例代码来试试这个练习。
# Create a mapper that test if .x is more than 100
is_more_than_hundred <- ___(~ .x > 100)
# Use this mapper with keep() on the all_visits object
map(all_visits, ~ ___(.x, is_more_than_hundred))
# Use the day vector to set names to all_list
day <- c("mon", "tue", "wed", "thu", "fri", "sat", "sun")
full_visits_named <- map(all_visits, ~ ___(.x, ___))
# Use this mapper with keep()
map(full_visits_named, ~ ___(.x, ___))