El conjunt de dades provĆ© dāun perĆode qualsevol dāescolta de mĆŗsica. Les escoltes totals estĆ n comptabilitzades per last.fm i les globals estĆ n comptabilitzades per Spotify. El gĆØnere Ć©s el de lāĆ lbum al que pertany cada cançó.
Lāobjectiu principal que tenim Ć©s analitzar les dades adquirides i trobar relacions entre elles.
Per exemple: la durada de cada cançó en relació amb el seu gènere.
Al tenir dades musicals per artista, popularitat, durada i gĆØnere podem establir relacions interessants entre la durada (o altres valors) i el gĆØnere.
Mostreu com heu importat el fitxer i quin nom tĆ© lāobjecte carregat.
musica <- read.csv("musica_separat_genere.csv", header = TRUE, stringsAsFactors = FALSE)
save(musica, file = "musica.RData") # El nom de l'objecte Ʃs musica
El format original de les dades era originalment en .csv, en el que vam haver de canviar el format de les dates, ja que no era adequat, hem afegit: - Any de publicació - Data - Durada - Gènere - Reproduccions globals - Reproduccions
dim(musica)
## [1] 50 9
glimpse(musica)
## Rows: 50
## Columns: 9
## $ Artista <chr> "Oques Grasses", "Arctic Monkeys", "Arctic Monkeyā¦
## $ Ćlbum <chr> "A tope amb la vida", "AM", "AM", "Amics Tiets i ā¦
## $ TĆtol <chr> "TalismĆ ", "I Wanna Be Yours", "R U Mine?", "Amicā¦
## $ Any_pub <int> 2021, 2013, 2013, 2021, 2015, 2015, 2015, 2015, 2ā¦
## $ Data <chr> "19 Mar 2025 06:49", "18 Mar 2025 17:26", "18 Marā¦
## $ Durada <chr> "03:03:00", "03:03:00", "03:21:00", "03:37:00", "ā¦
## $ GĆØnere <chr> "rock catalĆ ", "sheffield indie", "sheffield indiā¦
## $ ReproduccionsGlobals <dbl> 5080936, 3417053862, 1297535685, 6632381, 3486176ā¦
## $ Reproduccions <int> 5, 37, 58, 4, 15, 33, 16, 11, 41, 8, 11, 7, 11, 6ā¦
El dataset tĆ© 50 files i 9 columnes La unitat dāanĆ lisi Ć©s una reproducció.
Descriviu cada variable del dataset.
| Variable | Tipus | Descripció | Valors possibles / rang |
|---|---|---|---|
| Artista | Categòrica | Artista de la cançó escoltada | string |
| Ćlbum | Categòrica | Ćlbum de la cançó escoltada | string |
| TĆtol | Categòrica | TĆtol de la cançó escoltada | string |
| Any_pub | NumĆØrica | Any de publicació de lāĆ lbum/single | 1993 - 2025 |
| Data | NumĆØrica | Data i hora de lāescolta de la cançó | 18 Mar 2025 18:32 - 05 Jul 2025 10:23 |
| Durada | Numèrica | Durada de la cançó escoltada | 01:30:00 - 05:38:00 |
| GĆØnere | Categòrica | GĆØnere de lāĆ lbum/single | string |
| ReproduccionsGlobals | Numèrica | Reproduccions (spotify) de la cançó escoltada | 0 - INF |
| Reproduccions | Numèrica | Reproduccions de la cançó escoltada | 1 - INF |
tibble(
variable = names(musica),
tipus = sapply(musica, class)
)
## # A tibble: 9 Ć 2
## variable tipus
## <chr> <chr>
## 1 Artista character
## 2 Ćlbum character
## 3 TĆtol character
## 4 Any_pub integer
## 5 Data character
## 6 Durada character
## 7 GĆØnere character
## 8 ReproduccionsGlobals numeric
## 9 Reproduccions integer
summary(musica)
## Artista Ćlbum TĆtol Any_pub
## Length:50 Length:50 Length:50 Min. :1993
## Class :character Class :character Class :character 1st Qu.:2013
## Mode :character Mode :character Mode :character Median :2016
## Mean :2015
## 3rd Qu.:2020
## Max. :2024
## Data Durada GĆØnere ReproduccionsGlobals
## Length:50 Length:50 Length:50 Min. :8.706e+05
## Class :character Class :character Class :character 1st Qu.:1.180e+07
## Mode :character Mode :character Mode :character Median :8.434e+07
## Mean :3.712e+08
## 3rd Qu.:2.813e+08
## Max. :3.417e+09
## Reproduccions
## Min. : 3.00
## 1st Qu.: 8.25
## Median :14.50
## Mean :19.78
## 3rd Qu.:30.50
## Max. :60.00
En aquest conjunt de dades no hi ha valors perduts.
Les dates sāhan de passar a format data, la llibreria lubridate ho pot fer sense problemes.
Incloeu una o dues grà fiques exploratòries.
musica$GĆØnere <- factor(musica$GĆØnere, levels = sort(unique(musica$GĆØnere)))
# Defineix els colors per a cada categoria
colors <- c(
"j-rock" = "red",
"lo-fi" = "blue",
"punk rock" = "green",
"rock " = "purple",
"rock alternatiu" = "orange",
"rock catalĆ " = "pink",
"sheffield indie" = "brown",
"trap catalĆ " = "cyan",
"visual kei" = "magenta"
)
# Crea el primer grĆ fic de barres
grafic1 <- ggplot(musica, aes(y = GĆØnere, fill = GĆØnere)) +
geom_bar() +
scale_fill_manual(values = colors) +
theme_minimal() +
labs(title = "Distribució de Gèneres Musicals", x = "Gènere", y = "Freqüència") +
theme(axis.text.x = element_text(angle = 45, hjust = 1))
# Calcula les durades mitjanes per gĆØnere
durada_mitjana <- musica %>%
group_by(GĆØnere) %>%
summarise(Durada_Mitjana = mean(Durada))
## Warning: There were 9 warnings in `summarise()`.
## The first warning was:
## ā¹ In argument: `Durada_Mitjana = mean(Durada)`.
## ā¹ In group 1: `GĆØnere = j-rock`.
## Caused by warning in `mean.default()`:
## ! l'argument no és «numeric» ni «logical»: es retorna NA
## ā¹ Run `dplyr::last_dplyr_warnings()` to see the 8 remaining warnings.
grafic2 <- ggplot(durada_mitjana, aes(x = GĆØnere, y = Durada_Mitjana, fill = GĆØnere)) +
geom_bar(stat = "identity") +
scale_fill_manual(values = colors) +
theme_minimal() +
labs(title = "Durada Mitjana per GĆØnere", x = "GĆØnere", y = "Durada Mitjana") +
theme(axis.text.x = element_text(angle = 45, hjust = 1))
# Mostra els dos grĆ fics en una sola finestra
grid.arrange(grafic1, grafic2, ncol = 2)
## Warning: Removed 9 rows containing missing values or values outside the scale range
## (`geom_bar()`).