ComeçarComece de graça

purrr e histogramas

Agora você vai juntar tudo o que aprendeu, começando com duas listas diferentes, que serão transformadas em um histograma com facetas. Você vai trabalhar novamente com os dados de Star Wars dos conjuntos sw_films e sw_people para responder a uma pergunta:

  • Qual é a distribuição das alturas dos personagens em cada um dos filmes de Star Wars?

Filmes diferentes acontecem em conjuntos diferentes de planetas, então é de se esperar distribuições distintas de alturas entre os personagens. Sua primeira tarefa é transformar os dois conjuntos em data frames, já que ggplot() exige um data frame como entrada. Depois, você vai uni-los e plotar o resultado: um histograma com uma faceta, ou subgráfico, diferente para cada filme.

Este exercício faz parte do curso

Fundamentos de Programação Funcional com purrr

Ver curso

Instruções do exercício

  • Crie um data frame com o "title" de cada filme e os "characters" de cada filme no conjunto sw_films.
  • Crie um data frame com os elementos "height", "mass", "name" e "url" de sw_people.
  • Una os dois data frames usando as chaves "characters" e "url".
  • Crie um histograma com ggplot() usando x = height, com facetas por filmtitle.

Exercício interativo prático

Experimente este exercício completando este código de exemplo.

# 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(~ ___)
Editar e executar o código