开始使用免费开始使用

purrr 与直方图

现在,您将把学到的内容串联起来:从两个不同的列表出发,最终绘制一个带分面的小提琴图。您将再次使用 sw_filmssw_people 数据集中的《星球大战》数据来回答一个问题:

  • 每一部《星球大战》电影中,角色身高的分布是什么样的?

不同的电影发生在不同的星球上,所以您可能会看到角色身高分布的差异。您的第一步是将这两个数据集转换为数据框,因为 ggplot() 需要数据框作为输入。然后将它们连接起来,并绘制结果——一个按每部电影分面的直方图(子图)。

本练习是课程的一部分

使用 purrr 掌握函数式编程基础

查看课程

练习说明

  • 使用 sw_films 数据集创建一个数据框,包含每部电影的 "title",以及该电影的 "characters"
  • 创建一个数据框,包含 sw_people 中的 "height""mass""name""url" 元素。
  • 使用 "characters" 和 "url" 作为键,将两个数据框连接在一起。
  • 使用 ggplot() 绘制直方图,设定 x = height,并按 filmtitle 分面。

交互式实操练习

通过完成这段示例代码来试试这个练习。

# Turn data into correct data frame format
film_by_character <- tibble(filmtitle = map____(___, ___)) %>%
    mutate(filmtitle, characters = map(___, ___)) %>%
    unnest(cols = c(characters))

# Pull out elements from sw_people
sw_characters <- map____(___, `[`, c(___, ___, ___, ___))

# Join the two new objects
character_data <- inner_join(___, ___, by = c(___ = ___)) %>%
    # Make sure the columns are numbers
    mutate(height = as.numeric(height), mass = as.numeric(mass))

# Plot the heights, faceted by film title
ggplot(character_data, aes(x = ___)) +
  geom_histogram(stat = "count") +
  facet_wrap(~ ___)
编辑并运行代码