Registered S3 method overwritten by 'dplyr':
method from
print.rowwise_df
Registered S3 methods overwritten by 'dbplyr':
method from
print.tbl_lazy
print.tbl_sql
[30m── [1mAttaching packages[22m ───────────── tidyverse 1.3.0 ──[39m
[30m[32m✓[30m [34mggplot2[30m 3.3.0 [32m✓[30m [34mpurrr [30m 0.3.3
[32m✓[30m [34mtibble [30m 2.1.3 [32m✓[30m [34mdplyr [30m 0.8.5
[32m✓[30m [34mtidyr [30m 1.0.2 [32m✓[30m [34mstringr[30m 1.4.0
[32m✓[30m [34mreadr [30m 1.3.1 [32m✓[30m [34mforcats[30m 0.5.0[39m
[30m── [1mConflicts[22m ──────────────── tidyverse_conflicts() ──
[31mx[30m [34mdplyr[30m::[32mfilter()[30m masks [34mstats[30m::filter()
[31mx[30m [34mdplyr[30m::[32mlag()[30m masks [34mstats[30m::lag()[39m
Parsed with column specification:
cols(
.default = col_double(),
playlist_id = [31mcol_character()[39m,
playlist_name = [31mcol_character()[39m,
track_id = [31mcol_character()[39m,
track_explicit = [33mcol_logical()[39m,
track_href = [31mcol_character()[39m,
track_is_local = [33mcol_logical()[39m,
track_name = [31mcol_character()[39m,
track_preview_url = [31mcol_character()[39m,
track_uri = [31mcol_character()[39m,
track_album_id = [31mcol_character()[39m,
track_album_name = [31mcol_character()[39m,
track_album_release_date = [31mcol_character()[39m,
track_album_release_date_precision = [31mcol_character()[39m,
key_name = [31mcol_character()[39m,
mode_name = [31mcol_character()[39m,
key_mode = [31mcol_character()[39m
)
See spec(...) for full column specifications.
Os dados a serem analisados vem do Spotify. Foram filtradas músicas de playlists selecionadas, e cada música possui vários atributos, como: daceability(danceabilidade?), energia, valence e outras características provavelmente interessantes.
Vejamos os dados:
rr musicas
Vejamos agora a média e mediana da danceability de cada playlist, verificando esses dados a partir de cada música pertencente.
danceability_mean = musicas %>%
group_by(playlist_name) %>%
count(danceability_mean = mean(danceability))
danceability_median = musicas %>%
group_by(playlist_name) %>%
count(danceability_median = median(danceability))
ggplot() +
geom_point(data = musicas,
mapping = aes(x = danceability, y = playlist_name),
alpha = .3,
size = .5) +
geom_point(data = danceability_mean,
mapping = aes(x = danceability_mean, y = playlist_name),
color = "red",
size = 0.7) +
geom_point(data = danceability_median, mapping = aes(x = danceability_median, y = playlist_name),
color = "blue",
size = 0.7) +
labs(x = "Danceability",
y = "Nome da playlist",
title = "Danceabilidade x Nome da playlist",
subtitle = "Ponto azul = Mediana Ponto vermelho = Média")
#CLASSICOS DO FUNK TEM A MELHOR MEDIA, E APARENTA TER UMA BAIXA DISPERSAO, VAMOS VER...
A playlist Clássicos do Funk possui a maior média e a maior dispersão, ou seja, os dados estão distantes da média.
Olhando para a playlist Bonde do Funk, vemos que a mesma possui a segunda maior média, e o desvio padrão está bem próximo.
rr musicas %>% group_by(playlist_name) %>% summarise(sd_danceability = sd(danceability)) %>% ggplot(aes(x = sd_danceability, y = playlist_name)) + geom_point(size = .7, color = )
rr #A PLAYLIST CLASSICOS DO FUNK POSSUI O MENOR DP E A MAIOR MEDIA DE
rr musicas %>% group_by(playlist_name) %>% summarise(energy_mean = mean(energy)) %>% ggplot(aes(x = energy_mean, y = playlist_name)) + geom_point(color = , size = .5)
rr #A PLAYLIST CLASSICOS DO FUNK TAMBÉM POSSUI UMA DAS MEDIAS DE ENERGIA MAIS ALTAS
rr musicas %>% group_by(playlist_name) %>% summarise(valence_mean = mean(valence)) %>% ggplot(aes(x = valence_mean, y = playlist_name)) + geom_point(color = , size = .7)
rr #A PLAYLIST CLASSICOS DO FUNK TEM UMA DAS MELHORES MEDIAS DE
rr musicas %>% group_by(playlist_name) %>% ggplot(mapping = aes(y = danceability, x = \, color = playlist_name)) + geom_quasirandom(alpha = 0.4)
rr #!!!!!!!!!!!COMO GIRAR O NOME? NO Y FICA RUIM #AS MELHORES MUSICAS SAO DA PLAYLIST CLASSICOS DO FUNK
rr musicas %>% filter(playlist_name == do Funk) %>% summarise(max(danceability, track_name))
rr musicas %>% filter(playlist_name == do Funk) %>% summarise(max(energy, track_name))
rr musicas %>% filter(playlist_name == do Funk) %>% summarise(max(valence, track_name))
rr musicas %>% group_by(playlist_name) %>% ggplot(mapping = aes(x = track_popularity, y = playlist_name, color = playlist_name)) + geom_jitter()
rr #A PLAYLIST POP UP POSSUI AS TRACKS MAIS POPULARES
rr musicas %>% group_by(playlist_name) %>% count(playlistPopularity = mean(track_popularity)) %>% ggplot(mapping = aes(x = playlistPopularity, y = playlist_name)) + geom_point(color = , size = .4)
rr #AQUI, VERIFICA-SE QUE A PLAYLIST POP UP POSSUI A MAIOR POPULARIDADE ENTRE ESSAS PLAYLISTS, POR MEDIA DE POPULARIDADE DE CADA TRACK
rr musicas %>% group_by(playlist_name) %>% ggplot(mapping = aes(y = playlist_name, x = track_popularity, fill = playlist_name)) + geom_boxplot() + geom_jitter(color = , size = 0.5, alpha = 0.5)
rr playlistPopularity = musicas %>% group_by(playlist_name) %>% count(playlistPopularity = mean(track_popularity))
ggplot() + geom_point(data = musicas, mapping = aes(x = track_popularity, y = playlist_name), alpha = 0.3, size = 0.5) + geom_point(data = playlistPopularity, mapping = aes(x = playlistPopularity, y = playlist_name), color = , size = 0.6) + labs(x = nome, y = nome, title = )
rr musicas %>% group_by(playlist_name) %>% summarise(sdPlaylistPopularity = sd(track_popularity)) %>% arrange(sdPlaylistPopularity)
rr musicas %>% ggplot(aes(x = energy, y = valence), color = playlist_name) + geom_point(alpha = .6, size = .5) + facet_wrap(~ playlist_name)
rr musicas %>% group_by(playlist_name) %>% ggplot(mapping = aes(x = valence, y = energy, color = playlist_name)) + geom_point(alpha = 0.8, size = 0.8)
RELACAO POSITIVA E LINEAR. A ENERGIA INFLUENCIA A FELICIDADE QUE A MUSICA TRANSMITE?
rr musicas %>% summarise(coeficiente = cor(valence, energy, method = )) r #APARENTEMENTE NAO APRESENTA UMA CORRELACAO MUITO BOA
APARENTEMENTE NAO APRESENTA UMA CORRELACAO MUITO ALTA.
Uma coisa curiosa a ser analisada é se as tracks com selo EXPLICIT possuem uma maior valencia, energia ou “dançabilidade”. Vejamos:
rr musicas %>% ggplot(mapping = aes(x = , y = energy, color = playlist_name)) + geom_quasirandom() + facet_wrap(~ track_explicit)
rr musicas %>% group_by(track_explicit) %>% summarise(mean = mean(energy), median = median(energy))
Aparentemente as musicas terem selo EXPLICIT não influenciam na energia que a música passa, mas vejamos como se comporta com a valencia:
rr musicas %>% ggplot(mapping = aes(x = , y = valence, color = playlist_name)) + geom_quasirandom() + facet_wrap(~ track_explicit)
rr musicas %>% group_by(track_explicit) %>% summarise(mean = mean(valence), median = median(valence))
As músicas com selo EXPLICIT também não influenciam a felicidade que passam.
rr musicas %>% ggplot(mapping = aes(x = , y = danceability, color = playlist_name)) + geom_quasirandom() + facet_wrap(~ track_explicit)
rr musicas %>% group_by(track_explicit) %>% summarise(mean = mean(danceability), median = median(danceability), sd = sd(danceability))
As musicas com tag EXPLICIT possuem media e mediana levemente maiores que as que não possuem, assim como um desvio padrão menor, então TALVEZ haja alguma relação.