• Introdução
  • 1. Bibliotecas
  • 2. Base de dados
  • 3. Análise
    • Organizando os dados
    • Questão 1
    • Questão 2
    • Questão 3
    • Questao 4
    • Questao 5

Introdução

Este é o trabalho final solicitado no curso de R que eu fiz no mês de Agosto de 2021. Eu me inscrevi para concorrer a uma bolsa de diversidade para o curso R para Ciência de Dados II e fui contemplada. Acessem mais informações do curso neste link: https://curso-r.com/cursos/r4ds-2/ .

1. Bibliotecas

library(readr)
library(dplyr)
## 
## Attaching package: 'dplyr'
## The following objects are masked from 'package:stats':
## 
##     filter, lag
## The following objects are masked from 'package:base':
## 
##     intersect, setdiff, setequal, union
library(tidyr)
library(purrr)
library(stringr)
library(lubridate)
## 
## Attaching package: 'lubridate'
## The following objects are masked from 'package:base':
## 
##     date, intersect, setdiff, union
library(ggplot2)

2. Base de dados

remotes::install_github("curso-r/basesCursoR")
## Skipping install of 'basesCursoR' from a github remote, the SHA1 (65685a4e) has not changed since last install.
##   Use `force = TRUE` to force installation
imdb <- basesCursoR::pegar_base("imdb_completa")
imdb_pessoas <- basesCursoR::pegar_base("imdb_pessoas")
imdb_avaliacoes <- basesCursoR::pegar_base("imdb_avaliacoes")

3. Análise

Organizando os dados

  1. Fazendo uma cópia da base
imdb2 = imdb
  1. Substituindo todos os NAS
  # Substituindo todos os NAS por " " nas colunas de texto
  imdb2 <- imdb2 %>%
    mutate(
      across(
        .cols = where(is.character),
        .fns = tidyr::replace_na,
        replace = ""
      )
    )
  
  # Substituindo todos os NAS por zero nas colunas numéricas
  imdb2 <- imdb2 %>%
    mutate(
      across(
        .cols = where(is.numeric),
        .fns = tidyr::replace_na,
        replace = 0
      )
    )

Questão 1

  • Verificando o tipo de dado da coluna data_lancamento:
class(imdb2$data_lancamento)
## [1] "character"
  • Mudando o tipo de dado de caracter para data:
imdb2 = imdb2 %>% mutate(nova_data_lancamento = as.Date(imdb2$data_lancamento))
  • Separando e criando novas colunas para ano, mês e dia:
imdb2 = imdb2 %>% mutate(
  ano2 = year(nova_data_lancamento),
  mes = month(nova_data_lancamento, label = TRUE, abbr = FALSE),
  dia = day(nova_data_lancamento))
  • Novamente substituir o NAs
# Substituindo todos os NAS por " " nas colunas de texto
  imdb2 <- imdb2 %>%
    mutate(
      across(
        .cols = where(is.character),
        .fns = tidyr::replace_na,
        replace = ""
      )
    )
  
  # Substituindo todos os NAS por zero nas colunas numéricas
  imdb2 <- imdb2 %>%
    mutate(
      across(
        .cols = where(is.numeric),
        .fns = tidyr::replace_na,
        replace = 0
      )
    )
  • Total de filmes lançados exatamente na mesma data:
total_data = arrange(imdb2 %>% count(nova_data_lancamento, name = "total"), desc(total))
print(total_data)
## # A tibble: 21,907 x 2
##    nova_data_lancamento total
##    <date>               <int>
##  1 NA                    4563
##  2 2018-10-26              49
##  3 2017-09-01              44
##  4 2011-04-01              40
##  5 2018-10-12              40
##  6 2019-11-01              39
##  7 2019-12-06              39
##  8 2017-09-29              38
##  9 2020-02-14              38
## 10 2019-03-01              37
## # ... with 21,897 more rows
# removendo os NAS
total_data = total_data[-1,]
print(total_data)
## # A tibble: 21,906 x 2
##    nova_data_lancamento total
##    <date>               <int>
##  1 2018-10-26              49
##  2 2017-09-01              44
##  3 2011-04-01              40
##  4 2018-10-12              40
##  5 2019-11-01              39
##  6 2019-12-06              39
##  7 2017-09-29              38
##  8 2020-02-14              38
##  9 2019-03-01              37
## 10 2019-09-13              37
## # ... with 21,896 more rows
  • Top 5 datas de lançamento:
top_data = data.frame(top_n(total_data, 5))
## Selecting by total
colnames(top_data) = c("Data", "Total")
print(top_data)
##         Data Total
## 1 2018-10-26    49
## 2 2017-09-01    44
## 3 2011-04-01    40
## 4 2018-10-12    40
## 5 2019-11-01    39
## 6 2019-12-06    39
# removendo os NAS
top_data = top_data[-1,]
print(top_data)
##         Data Total
## 2 2017-09-01    44
## 3 2011-04-01    40
## 4 2018-10-12    40
## 5 2019-11-01    39
## 6 2019-12-06    39
  • Data com o maior número de filmes lançados independente do dia e do ano:
data_max = total_data[which.max(total_data$total),]
print(data_max)
## # A tibble: 1 x 2
##   nova_data_lancamento total
##   <date>               <int>
## 1 2018-10-26              49
  • Data com o menor número de filmes lançados independente do dia e do ano:
data_min = total_data[which.min(total_data$total),]
print(data_min)
## # A tibble: 1 x 2
##   nova_data_lancamento total
##   <date>               <int>
## 1 1894-10-09               1
  • Total de filmes lançados por mês independente do dia e do ano:
total_mes = arrange(imdb2 %>% count(mes, name = "total"), desc(total))
print(total_mes)
## # A tibble: 13 x 2
##    mes       total
##    <ord>     <int>
##  1 outubro    8734
##  2 setembro   7924
##  3 março      7435
##  4 novembro   7094
##  5 abril      7078
##  6 dezembro   6618
##  7 fevereiro  6441
##  8 agosto     6399
##  9 janeiro    6361
## 10 maio       6173
## 11 junho      5800
## 12 julho      5235
## 13 <NA>       4563
# removendo os NAs
total_mes = total_mes[-13,]
print(total_mes)
## # A tibble: 12 x 2
##    mes       total
##    <ord>     <int>
##  1 outubro    8734
##  2 setembro   7924
##  3 março      7435
##  4 novembro   7094
##  5 abril      7078
##  6 dezembro   6618
##  7 fevereiro  6441
##  8 agosto     6399
##  9 janeiro    6361
## 10 maio       6173
## 11 junho      5800
## 12 julho      5235
  • Plotando um gráfico:
meu_tema <- function() {
    theme(axis.title.y = element_text(color="#005eff", size=14, face=4)) +
    theme(axis.title.x = element_text(color="#005eff", size=14, face=4)) +
    theme(axis.text = element_text(angle = 45, color="#005eff", size=10, face=4))
}
grafico_dispersao <- function(tab, colx, coly) {
  tab %>%
    ggplot(aes(x = {{colx}}, y = {{coly}}, color={{coly}})) +
    geom_point(size=3, color="#005eff") +
    meu_tema()
}
grafico_dispersao(total_mes, colx = mes, coly = total)

  • Top 5 meses de lançamento:
top_mes = data.frame(top_n(total_mes, 5))
## Selecting by total
colnames(top_mes) = c("Mês", "Total")
print(top_mes)
##        Mês Total
## 1  outubro  8734
## 2 setembro  7924
## 3    março  7435
## 4 novembro  7094
## 5    abril  7078
  • Mês com o maior número de filmes lançados independente do dia e do ano:
mes_max = total_mes[which.max(total_mes$total),]
print(mes_max)
## # A tibble: 1 x 2
##   mes     total
##   <ord>   <int>
## 1 outubro  8734
  • Mês com o menor número de filmes lançados independente do dia e do ano:
mes_min = total_mes[which.min(total_mes$total),]
print(mes_min)
## # A tibble: 1 x 2
##   mes   total
##   <ord> <int>
## 1 julho  5235
  • Total de filmes por dia independente do ano e do mês:
total_dia = arrange(imdb2 %>% count(dia, name = "total"), desc(total))
print(total_dia)
## # A tibble: 32 x 2
##      dia total
##    <dbl> <int>
##  1     1  7260
##  2     0  4563
##  3    15  2831
##  4    14  2728
##  5    25  2727
##  6    21  2647
##  7    10  2626
##  8    20  2611
##  9    12  2600
## 10    28  2574
## # ... with 22 more rows
#removendo NAS
total_dia = total_dia[-2,]
print(total_dia)
## # A tibble: 31 x 2
##      dia total
##    <dbl> <int>
##  1     1  7260
##  2    15  2831
##  3    14  2728
##  4    25  2727
##  5    21  2647
##  6    10  2626
##  7    20  2611
##  8    12  2600
##  9    28  2574
## 10     7  2555
## # ... with 21 more rows
grafico_dispersao(total_dia, colx = dia, coly = total)

  • Top 5 anos de lançamento:
top_dia = data.frame(top_n(total_dia, 5))
## Selecting by total
colnames(top_dia) = c("Dia", "Total")
print(top_dia)
##   Dia Total
## 1   1  7260
## 2  15  2831
## 3  14  2728
## 4  25  2727
## 5  21  2647
  • Dia com o maior número de filmes lançados independente do ano e do mês:
dia_max = total_dia[which.max(total_dia$total),]
print(dia_max)
## # A tibble: 1 x 2
##     dia total
##   <dbl> <int>
## 1     1  7260
  • Dia com o menor número de filmes lançados independente do ano e do mês:
dia_min = total_dia[which.min(total_mes$total),]
print(dia_min)
## # A tibble: 1 x 2
##     dia total
##   <dbl> <int>
## 1    23  2523
  • Total de filmes por ano independente do dia e do mês:
total_ano = arrange(imdb2 %>% count(ano2, name = "total"), desc(total))
print(total_ano)
## # A tibble: 114 x 2
##     ano2 total
##    <dbl> <int>
##  1     0  4563
##  2  2018  3281
##  3  2017  3276
##  4  2019  3108
##  5  2016  3066
##  6  2015  2907
##  7  2014  2848
##  8  2013  2726
##  9  2012  2419
## 10  2011  2331
## # ... with 104 more rows
# removendo NAS
total_ano = total_ano[-1,]
print(total_ano)
## # A tibble: 113 x 2
##     ano2 total
##    <dbl> <int>
##  1  2018  3281
##  2  2017  3276
##  3  2019  3108
##  4  2016  3066
##  5  2015  2907
##  6  2014  2848
##  7  2013  2726
##  8  2012  2419
##  9  2011  2331
## 10  2009  2156
## # ... with 103 more rows
grafico_dispersao(total_ano, colx = ano2, coly = total)

  • Ano com maior número de filmes lançados independente do dia e do mês:
ano_max = total_ano[which.max(total_ano$total),]
print(ano_max)
## # A tibble: 1 x 2
##    ano2 total
##   <dbl> <int>
## 1  2018  3281
  • Ano com o menor número de filmes lançados independente do dia e do mês:
ano_min = total_dia[which.min(total_mes$total),]
print(ano_min)
## # A tibble: 1 x 2
##     dia total
##   <dbl> <int>
## 1    23  2523
  • Top 5 anos de lançamento:
top_ano = data.frame(top_n(total_ano, 5))
## Selecting by total
colnames(top_ano) = c("Ano", "Total")
print(top_ano)
##    Ano Total
## 1 2018  3281
## 2 2017  3276
## 3 2019  3108
## 4 2016  3066
## 5 2015  2907

Questão 2

  • Separando os países que estão todos juntos na coluna PAÍS e criando novas colunas para cada um:
imdb_paises <- 
  imdb2 %>%
  mutate(paises_separados = str_split(pais, "\\,")) %>% 
  unnest(cols = paises_separados)
  • Calculando o total para cada país:
total_pais = arrange(imdb_paises %>% count(paises_separados, name = "total"), desc(total))
print(total_pais)
## # A tibble: 345 x 2
##    paises_separados total
##    <chr>            <int>
##  1 "USA"            30910
##  2 "India"           6189
##  3 "UK"              5889
##  4 "France"          5202
##  5 "Italy"           3785
##  6 " USA"            3415
##  7 "Japan"           3275
##  8 " France"         3109
##  9 "Canada"          2508
## 10 "Germany"         2039
## # ... with 335 more rows
  • Top 5 países
top_paises = data.frame(top_n(total_pais, 5))
## Selecting by total
colnames(top_paises) = c("Países", "Total")
print(top_paises)
##   Países Total
## 1    USA 30910
## 2  India  6189
## 3     UK  5889
## 4 France  5202
## 5  Italy  3785

Questão 3

  • Listando todas as moedas que aparecem nas colunas orcamento e receita:
# Primeiro verificando para cada coluna individualmente

# A coluna ORCAMENTO tem ______ moedas diferentes:
moedas_orcamento <-
  imdb2 %>% distinct(str_remove(orcamento, pattern="[:digit:]+"))

names(moedas_orcamento) = "orcamento"
nrow(moedas_orcamento)
## [1] 80
print(moedas_orcamento)
## # A tibble: 80 x 1
##    orcamento
##    <chr>    
##  1 ""       
##  2 "$ "     
##  3 "ITL "   
##  4 "ROL "   
##  5 "SEK "   
##  6 "FRF "   
##  7 "NOK "   
##  8 "GBP "   
##  9 "DEM "   
## 10 "PTE "   
## # ... with 70 more rows
# A coluna RECEITA tem ______ moedas diferentes:
moedas_receita <- 
  imdb2 %>% distinct(str_remove(receita, pattern="[:digit:]+"))

names(moedas_receita) = "receita"
nrow(moedas_receita)
## [1] 6
print(moedas_receita)
## # A tibble: 6 x 1
##   receita
##   <chr>  
## 1 ""     
## 2 "$ "   
## 3 "GBP " 
## 4 "INR " 
## 5 "NPR " 
## 6 "PKR "
# Agora considerando as duas colunas ao mesmo tempo
moedas_re_or <-
  imdb2 %>% 
  mutate(
        across(
        .cols = c(orcamento, receita), 
        .fns = str_remove, pattern = "[:digit:]+"))
        moedas_re_or = distinct(moedas_re_or, across(c(orcamento, receita)
      )
   )
nrow(moedas_re_or)
## [1] 141
print(moedas_re_or)
## # A tibble: 141 x 2
##    orcamento receita
##    <chr>     <chr>  
##  1 ""        ""     
##  2 "$ "      ""     
##  3 "ITL "    ""     
##  4 "ROL "    ""     
##  5 ""        "$ "   
##  6 "SEK "    ""     
##  7 "$ "      "$ "   
##  8 "FRF "    ""     
##  9 "NOK "    "$ "   
## 10 "GBP "    "$ "   
## # ... with 131 more rows

Questao 4

  • Separando os gêneros em novas colunas:
imdb_generos <- 
  imdb2 %>% 
  mutate(generos_separados = str_split(genero, "\\,")) %>% 
  unnest(cols = generos_separados)
nrow(imdb_generos)
## [1] 175867
  • Substituindo todos os NAS
# Substituindo todos os NAS por " " nas colunas de texto
imdb_generos <- 
  imdb_generos %>%
  mutate(
    across(
      .cols = where(is.character),
      .fns = tidyr::replace_na,
      replace = ""
    )
  )

# Substituindo todos os NAS por zero nas colunas numéricas
imdb_generos <- 
  imdb_generos %>%
  mutate(
    across(
      .cols = where(is.numeric),
      .fns = tidyr::replace_na,
      replace = 0
    )
  )
  • Removendo os espaços em branco
imdb_generos <-
  imdb_generos %>% 
  mutate(generos_separados = str_remove(imdb_generos$generos_separados, pattern="\\s"))
  • Calculando o gênero com maior lucro considerando apenas os orçamentos e receitas em dólar:
imdb_generos = imdb_generos %>%
  filter(str_detect(orcamento, "\\$")&str_detect(receita, "\\$")) %>%
  mutate_at(vars(orcamento, receita), parse_number) %>%
  mutate(lucro_dolar = receita - orcamento)

resultado = imdb_generos %>%
  group_by(generos_separados) %>%
  summarise(lucro_medio = mean(receita - orcamento, na.rm = TRUE))
  • Calculando a maior nota média considerando apenas os orçamentos e receitas em dólar:
resultado2 = imdb_generos %>%
  group_by(generos_separados) %>%
  summarise(nota_media = mean(nota_imdb, na.rm = TRUE)) %>%
  slice_max(nota_media)

nrow(resultado2)
## [1] 1
print(resultado2)
## # A tibble: 1 x 2
##   generos_separados nota_media
##   <chr>                  <dbl>
## 1 Film-Noir               7.85
  • Top 5 generos
total_generos = arrange(imdb_generos %>% count(generos_separados, name = "total"), desc(total))
top_generos = data.frame(top_n(total_generos, 5))
## Selecting by total
colnames(top_generos) = c("Gêneros", "Total")
print(top_generos)
##   Gêneros Total
## 1   Drama  4856
## 2  Comedy  3376
## 3  Action  2148
## 4   Crime  1667
## 5 Romance  1541

Questao 5

  • Escolhendo o meu filme favorito
result = filter(imdb2, imdb2$titulo_original == "Rocky")
meu_filme = result[1,]
print(meu_filme)
## # A tibble: 1 x 25
##   id_filme  titulo titulo_original   ano data_lancamento genero    duracao pais 
##   <chr>     <chr>  <chr>           <dbl> <chr>           <chr>       <dbl> <chr>
## 1 tt0075148 Rocky  Rocky            1976 1977-03-25      Drama, S~     120 USA  
## # ... with 17 more variables: idioma <chr>, orcamento <chr>, receita <chr>,
## #   receita_eua <chr>, nota_imdb <dbl>, num_avaliacoes <dbl>, direcao <chr>,
## #   roteiro <chr>, producao <chr>, elenco <chr>, descricao <chr>,
## #   num_criticas_publico <dbl>, num_criticas_critica <dbl>,
## #   nova_data_lancamento <date>, ano2 <dbl>, mes <ord>, dia <dbl>
  • Identificando o diretor do filme:
diretores = c(result$direcao)
print(diretores)
## [1] "John G. Avildsen" "Sunil Dutt"       "Suresh Krishna"
  • Informações diretor 1:
diretor1 = filter(imdb_pessoas, imdb_pessoas$nome == diretores[1])
diretor1$data_nascimento
## [1] "1935-12-21"
diretor1$data_falecimento
## [1] "2017-06-16"
diretor1$local_nascimento
## [1] "Oak Park, Illinois, USA"
# se estivesse vivo teria
elapsed.time <- diretor1$data_nascimento %--% today()
as.duration(elapsed.time)
## [1] "2704665600s (~85.71 years)"
  • Informações diretor 2:
diretor2 = filter(imdb_pessoas, imdb_pessoas$nome == diretores[2])
diretor2$data_nascimento
## [1] "1930-06-06"
diretor2$data_falecimento
## [1] "2005-05-25"
diretor2$local_nascimento
## [1] "Jhelum, Punjab, British India"
# se estivesse vivo teria
elapsed.time <- diretor1$data_nascimento %--% today()
as.duration(elapsed.time)
## [1] "2704665600s (~85.71 years)"
  • Informações diretor 3:
diretor3 = filter(imdb_pessoas, imdb_pessoas$nome == diretores[3])
diretor3$data_nascimento
## [1] NA NA
diretor3$data_falecimento
## [1] NA NA
diretor3$local_nascimento
## [1] NA NA
# se estivesse vivo teria
elapsed.time <- diretor1$data_nascimento %--% today()
as.duration(elapsed.time)
## [1] "2704665600s (~85.71 years)"
  • Separando os diretores
imdb2 <- 
  imdb_generos %>% 
  mutate(diretores_separados = str_split(direcao, "\\,")) %>% 
  unnest(cols = diretores_separados)
  • Total de filmes dirigidos por todos os diretores:
total_por_diretores = arrange(imdb2 %>% count(direcao, name = "total"), desc(total))
  • Total de filmes dirigidos pelos diretores 1, 2 e 3:
total_diretor_1 = filter(total_por_diretores, total_por_diretores$direcao==diretores[1])
total_diretor_2 = filter(total_por_diretores, total_por_diretores$direcao==diretores[2])
total_diretor_3 = filter(total_por_diretores, total_por_diretores$direcao==diretores[3])
  • Lucro médio dos filmes dirigidos considerando apenas valores em dólar:
# Lucro médio dos filmes dirigidos considerando apenas valores em dólar:
imdb2 %>% filter(diretores_separados == diretor1$nome) %>%
  group_by(titulo) %>% summarise(lucro_medio = mean(lucro_dolar, na.rm = TRUE))
## # A tibble: 7 x 2
##   titulo                              lucro_medio
##   <chr>                                     <dbl>
## 1 Conta su di me                         21906454
## 2 La formula                             -4305711
## 3 La guerra del cittadino Joe            19213254
## 4 Otto secondi di gloria                 12623396
## 5 Rocky                                 116275147
## 6 Rocky V                                77946358
## 7 The Karate Kid - Per vincere domani    83119319
imdb2 %>%  filter(diretores_separados == diretor2$nome) %>%
  group_by(titulo) %>% summarise(lucro_medio = mean(lucro_dolar, na.rm = TRUE))
## # A tibble: 0 x 2
## # ... with 2 variables: titulo <chr>, lucro_medio <dbl>
imdb2 %>% filter(diretores_separados == diretor3$nome) %>%
  group_by(titulo) %>% summarise(lucro_medio = mean(lucro_dolar, na.rm = TRUE))
## # A tibble: 0 x 2
## # ... with 2 variables: titulo <chr>, lucro_medio <dbl>
  • Posição do filme no ranking de notas do imdb:
# por algum motivo a ordenação não estava funcionando corretamente
# então primeiro eu retirei todos os espaços vazios
# depois converti para numerico, ai funcionou
imdb2 <- 
  imdb2 %>%
  mutate(nota_imdb = str_remove(imdb2$nota_imdb, pattern="[\\s]+")) %>%
  mutate_at(vars(nota_imdb), parse_number)

# ordenado pela nota do filme
imdb2 <- imdb2[order(imdb2$nota_imdb, decreasing = TRUE),]

# criando uma nova coluna com a posição de cada filme
# de acordo com a nota
imdb2 <- imdb2 %>% mutate(posicao = seq(1, nrow(imdb2), by = 1))

# pegando a posição
result2 = filter(imdb2, imdb2$titulo_original == "Rocky")
result2$posicao
## [1] 432 433
  • Posição desse filme no ranking de lucro considerando apenas valores em dólar:
res <- imdb2 %>% arrange(imdb2$lucro_dolar) %>%
        mutate(rank_lucro = seq(1, nrow(imdb2), by = 1)) %>%
        filter(meu_filme$titulo == imdb2$titulo)
res$rank_lucro
## [1] 432 433
  • Data de lançamento do filme:
meu_filme$data_lancamento
## [1] "1977-03-25"
  • Dia da semana de lançamento do filme:
wday(ymd(meu_filme$data_lancamento), label = TRUE, abbr = FALSE)
## [1] sexta-feira
## 7 Levels: domingo < segunda-feira < terça-feira < ... < sábado
  • Filmes lançados no mesmo dia:
imdb2 %>% filter(data_lancamento == meu_filme$data_lancamento)
## # A tibble: 2 x 29
##   id_filme  titulo titulo_original   ano data_lancamento genero    duracao pais 
##   <chr>     <chr>  <chr>           <dbl> <chr>           <chr>       <dbl> <chr>
## 1 tt0075148 Rocky  Rocky            1976 1977-03-25      Drama, S~     120 USA  
## 2 tt0075148 Rocky  Rocky            1976 1977-03-25      Drama, S~     120 USA  
## # ... with 21 more variables: idioma <chr>, orcamento <dbl>, receita <dbl>,
## #   receita_eua <chr>, nota_imdb <dbl>, num_avaliacoes <dbl>, direcao <chr>,
## #   roteiro <chr>, producao <chr>, elenco <chr>, descricao <chr>,
## #   num_criticas_publico <dbl>, num_criticas_critica <dbl>,
## #   nova_data_lancamento <date>, ano2 <dbl>, mes <ord>, dia <dbl>,
## #   generos_separados <chr>, lucro_dolar <dbl>, diretores_separados <chr>,
## #   posicao <dbl>
  • Minha idade na data de lançamento do meu filme favorito:
if(as.numeric(meu_filme$ano2)<=1980){
  cat("eu ainda não era nascida")
} else{
  # exemplo
  as.duration(as.Date("1980-09-20") %--% as.Date(imdb2$data_lancamento[1]))  
}
## eu ainda não era nascida
  • Gráfico da distribuição da nota atribuída ao meu filme favorito - por idade (usar base imdb_avaliacoes):
avaliacoes = imdb_avaliacoes %>% filter(imdb_avaliacoes$id_filme == meu_filme$id_filme)
idade = c(colnames(avaliacoes))
avaliacoes = t(avaliacoes)
notas = c(0)
a = cbind(avaliacoes, data.frame(idade, notas))
a = a %>% filter(str_detect(idade, "nota_media_idade_")) 
a$idade = c("0-18", "18-30", "30-45", "45+")
a = data.frame(a[,-3])

b = density(as.numeric(a$avaliacoes))
plot(b)

a %>%
ggplot(aes(x=as.numeric(avaliacoes))) +
  geom_density(fill="#005eff", color="#e9ecef", alpha=0.6)  +
  ggtitle("Avaliações por idade") +
  meu_tema()