开始使用免费开始使用

用 keep 清理您的数据

从本课程一开始,我们一直在使用一周 A/B 测试的结果。

我们将这些结果放入了一个名为 all_visits 的列表中。该列表包含 visit_avisit_bvisit_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, ___))
编辑并运行代码