This data consists of ~600 songs that were in The Billboard top songs of the year from 2010 to 2019.
library(tidyverse)
## ── Attaching core tidyverse packages ──────────────────────── tidyverse 2.0.0 ──
## ✔ dplyr 1.1.4 ✔ readr 2.1.5
## ✔ forcats 1.0.0 ✔ stringr 1.5.1
## ✔ ggplot2 3.5.1 ✔ tibble 3.2.1
## ✔ lubridate 1.9.3 ✔ tidyr 1.3.1
## ✔ purrr 1.0.2
## ── Conflicts ────────────────────────────────────────── tidyverse_conflicts() ──
## ✖ dplyr::filter() masks stats::filter()
## ✖ dplyr::lag() masks stats::lag()
## ℹ Use the conflicted package (<http://conflicted.r-lib.org/>) to force all conflicts to become errors
library(dplyr)
library(ggplot2)
library(cluster)
spotify_data<-read_csv("top10s.csv")
## New names:
## Rows: 603 Columns: 15
## ── Column specification
## ──────────────────────────────────────────────────────── Delimiter: "," chr
## (3): title, artist, top genre dbl (12): ...1, year, bpm, nrgy, dnce, dB, live,
## val, dur, acous, spch, pop
## ℹ Use `spec()` to retrieve the full column specification for this data. ℹ
## Specify the column types or set `show_col_types = FALSE` to quiet this message.
## • `` -> `...1`
This is the summary of Spotify Data
## ...1 title artist top genre
## Min. : 1.0 Length:603 Length:603 Length:603
## 1st Qu.:151.5 Class :character Class :character Class :character
## Median :302.0 Mode :character Mode :character Mode :character
## Mean :302.0
## 3rd Qu.:452.5
## Max. :603.0
## year bpm nrgy dnce
## Min. :2010 Min. : 0.0 Min. : 0.0 Min. : 0.00
## 1st Qu.:2013 1st Qu.:100.0 1st Qu.:61.0 1st Qu.:57.00
## Median :2015 Median :120.0 Median :74.0 Median :66.00
## Mean :2015 Mean :118.5 Mean :70.5 Mean :64.38
## 3rd Qu.:2017 3rd Qu.:129.0 3rd Qu.:82.0 3rd Qu.:73.00
## Max. :2019 Max. :206.0 Max. :98.0 Max. :97.00
## dB live val dur
## Min. :-60.000 Min. : 0.00 Min. : 0.00 Min. :134.0
## 1st Qu.: -6.000 1st Qu.: 9.00 1st Qu.:35.00 1st Qu.:202.0
## Median : -5.000 Median :12.00 Median :52.00 Median :221.0
## Mean : -5.579 Mean :17.77 Mean :52.23 Mean :224.7
## 3rd Qu.: -4.000 3rd Qu.:24.00 3rd Qu.:69.00 3rd Qu.:239.5
## Max. : -2.000 Max. :74.00 Max. :98.00 Max. :424.0
## acous spch pop
## Min. : 0.00 Min. : 0.000 Min. : 0.00
## 1st Qu.: 2.00 1st Qu.: 4.000 1st Qu.:60.00
## Median : 6.00 Median : 5.000 Median :69.00
## Mean :14.33 Mean : 8.358 Mean :66.52
## 3rd Qu.:17.00 3rd Qu.: 9.000 3rd Qu.:76.00
## Max. :99.00 Max. :48.000 Max. :99.00
table(spotify_data$`top genre`)
##
## acoustic pop alaska indie alternative r&b
## 2 1 1
## art pop atl hip hop australian dance
## 8 5 6
## australian hip hop australian pop barbadian pop
## 1 5 15
## baroque pop belgian edm big room
## 2 2 10
## boy band british soul brostep
## 15 11 2
## canadian contemporary r&b canadian hip hop canadian latin
## 9 2 1
## canadian pop candy pop celtic rock
## 34 2 1
## chicago rap colombian pop complextro
## 1 3 6
## contemporary country dance pop danish pop
## 1 327 1
## detroit hip hop downtempo edm
## 2 2 5
## electro electro house electronic trap
## 2 1 2
## electropop escape room folk-pop
## 13 2 2
## french indie pop hip hop hip pop
## 1 4 6
## hollywood house indie pop
## 1 1 2
## irish singer-songwriter latin metropopolis
## 1 4 1
## moroccan pop neo mellow permanent wave
## 1 9 4
## pop tropical house
## 60 3
spotify_data <-spotify_data%>%separate((`top genre`),c("variable","genre"),extra='merge')
## Warning: Expected 2 pieces. Missing pieces filled with `NA` in 97 rows [5, 12, 24, 55,
## 58, 60, 65, 106, 108, 110, 114, 118, 119, 138, 148, 150, 153, 155, 163, 168,
## ...].
other <-c("downtempo","escape","hollywood","house","permanent","metropolis","Null")
spotify_data$genre[spotify_data$variable %in% other] <- 'Other'
spotify_data$genre[spotify_data$variable =='hip'] <- 'hip hop'
spotify_data$genre[spotify_data$variable =='irish'] <- 'folk'
spotify_data$genre[spotify_data$variable =='folk'] <- 'folk'
spotify_data$genre[spotify_data$variable =='tropical'] <- 'edm'
spotify_data$genre[spotify_data$variable =='complextro'] <- 'edm'
spotify_data$genre[spotify_data$variable =='electro'] <- 'edm'
spotify_data$genre[spotify_data$variable =='electronic'] <- 'edm'
spotify_data$genre[spotify_data$variable =='brostep'] <- 'edm'
spotify_data$genre[spotify_data$variable =='latin'] <- 'latin'
spotify_data$genre[spotify_data$variable =='boy'] <- 'pop'
spotify_data$genre[spotify_data$variable =='french'] <- 'pop'
spotify_data$genre[spotify_data$variable =='electropop'] <- 'pop'
spotify_data$genre[spotify_data$variable =='pop'] <- 'pop'
spotify_data$genre[spotify_data$variable =='neo'] <- 'alt rock'
spotify_data$genre[spotify_data$genre=='contemporary r&b'] <-'r&b'
spotify_data$genre[spotify_data$genre=='room'] <-'Other'
table(spotify_data$genre)
##
## alt rock country dance edm folk hip hop indie latin
## 9 1 6 18 3 20 1 5
## Other pop r&b rap rock soul
## 20 491 10 1 1 11
before analyze the data, make sure to find if theres a null or missing data
miss<-colSums(is.na(spotify_data))
print(miss)
## ...1 title artist variable genre year bpm nrgy
## 0 0 0 0 6 0 0 0
## dnce dB live val dur acous spch pop
## 0 0 0 0 0 0 0 0
spotify_data <-na.omit(spotify_data)
I want to analyst the popular songs in 2010 and 2019, determine the artists with the most popular songs in those years, and analyze the popular genres in 2010 and 2019. and also analyze who the artists had the most popular songs from 2010 to 2019
After running the codes, I discovered that the most popular song in 2010 was “Hey, Soul Sister” by Train with the alternative rock genre, and in 2019 it was “Memories” by Maroon 5 in the pop genre. In 2010, the artists with the most popular songs were The Black Eyed Peas, Kesha, and Christina Aguilera, while in 2019, only Ed Sheeran had the most popular songs. Katy Perry had the most popular songs from 2010 to 2019, and the pop genre also the most popular genre music from 2010 to 2019.
Popular_10 <- spotify_data%>%arrange(desc(pop))%>%filter(year==2010)%>%group_by(artist)
Popular_10
## # A tibble: 51 × 16
## # Groups: artist [31]
## ...1 title artist variable genre year bpm nrgy dnce dB live val
## <dbl> <chr> <chr> <chr> <chr> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
## 1 1 Hey, S… Train neo alt … 2010 97 89 67 -4 8 80
## 2 2 Love T… Eminem detroit hip … 2010 87 93 75 -5 52 64
## 3 3 TiK ToK Kesha dance pop 2010 120 84 76 -3 29 71
## 4 4 Bad Ro… Lady … dance pop 2010 119 92 70 -4 8 71
## 5 5 Just t… Bruno… pop pop 2010 109 84 64 -5 9 43
## 6 6 Baby Justi… canadian pop 2010 65 86 73 -5 11 54
## 7 7 Dynami… Taio … dance pop 2010 120 78 75 -4 4 82
## 8 8 Secrets OneRe… dance pop 2010 148 76 52 -6 12 38
## 9 9 Empire… Alici… hip hip … 2010 93 37 48 -8 12 14
## 10 10 Only G… Rihan… barbadi… pop 2010 126 72 79 -4 7 61
## # ℹ 41 more rows
## # ℹ 4 more variables: dur <dbl>, acous <dbl>, spch <dbl>, pop <dbl>
plot_most_popular_10 <-Popular_10%>%filter(year==2010)%>%ggplot(aes(artist))+geom_bar(fill="magenta")+coord_flip()+ggtitle("Artist with the most popular songs in 2010")
plot_most_popular_10
Popular_19 <- spotify_data%>%arrange(desc(pop))%>%filter(year==2019)%>%group_by(artist)
Popular_19
## # A tibble: 30 × 16
## # Groups: artist [20]
## ...1 title artist variable genre year bpm nrgy dnce dB live val
## <dbl> <chr> <chr> <chr> <chr> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
## 1 573 "Memor… Maroo… pop pop 2019 91 32 76 -7 8 57
## 2 574 "Lose … Selen… dance pop 2019 102 34 51 -9 21 9
## 3 575 "Someo… Lewis… pop pop 2019 110 41 50 -6 11 45
## 4 576 "Se\xf… Shawn… canadian pop 2019 117 54 76 -6 9 75
## 5 577 "How D… Sam S… pop pop 2019 111 68 48 -5 8 35
## 6 578 "South… Ed Sh… pop pop 2019 98 62 86 -6 9 67
## 7 579 "Tramp… SHAED electro… pop 2019 127 46 62 -6 14 50
## 8 580 "Happi… Marsh… brostep edm 2019 100 79 69 -3 17 67
## 9 581 "Truth… Lizzo escape Other 2019 158 62 72 -3 12 41
## 10 582 "Good … Lizzo escape Other 2019 96 89 67 -3 74 48
## # ℹ 20 more rows
## # ℹ 4 more variables: dur <dbl>, acous <dbl>, spch <dbl>, pop <dbl>
plot_most_popular_19 <-Popular_19%>%filter(year==2019)%>%ggplot(aes(artist))+geom_bar(fill="magenta")+coord_flip()+ggtitle("Artist with the most popular songs in 2019")
plot_most_popular_19
most_popular_artist_10 <- Popular_10%>%count(artist)%>%arrange(desc(n))
most_popular_artist_10%>%head(10)%>%ggplot(aes(x=reorder(artist,n),y=n))+geom_col(fill="magenta")+ggtitle("10 Most Popular Artist in 2010")+coord_flip()
most_popular_artist_19 <- Popular_19%>%count(artist)%>%arrange(desc(n))
most_popular_artist_19%>%head(10)%>%ggplot(aes(x=reorder(artist,n),y=n))+geom_col(fill="magenta")+ggtitle("10 Most Popular Artist in 2019")+coord_flip()
most_popular_year <- spotify_data%>%arrange(desc(pop))%>%group_by(artist)
most_popular_year
## # A tibble: 597 × 16
## # Groups: artist [181]
## ...1 title artist variable genre year bpm nrgy dnce dB live val
## <dbl> <chr> <chr> <chr> <chr> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
## 1 573 "Memor… Maroo… pop pop 2019 91 32 76 -7 8 57
## 2 574 "Lose … Selen… dance pop 2019 102 34 51 -9 21 9
## 3 575 "Someo… Lewis… pop pop 2019 110 41 50 -6 11 45
## 4 576 "Se\xf… Shawn… canadian pop 2019 117 54 76 -6 9 75
## 5 577 "How D… Sam S… pop pop 2019 111 68 48 -5 8 35
## 6 578 "South… Ed Sh… pop pop 2019 98 62 86 -6 9 67
## 7 579 "Tramp… SHAED electro… pop 2019 127 46 62 -6 14 50
## 8 580 "Happi… Marsh… brostep edm 2019 100 79 69 -3 17 67
## 9 581 "Truth… Lizzo escape Other 2019 158 62 72 -3 12 41
## 10 582 "Good … Lizzo escape Other 2019 96 89 67 -3 74 48
## # ℹ 587 more rows
## # ℹ 4 more variables: dur <dbl>, acous <dbl>, spch <dbl>, pop <dbl>
most_popular_artist <- most_popular_year%>%count(artist)%>%arrange(desc(n))
most_popular_artist%>%head(10)%>%ggplot(aes(x=reorder(artist,n),y=n))+geom_col(fill="magenta")+ggtitle("10 Most Popular Artist 2010-2019 ")+coord_flip()
most_popular_genre <- spotify_data%>%arrange(desc(pop))%>%group_by(genre)
most_popular_genre
## # A tibble: 597 × 16
## # Groups: genre [14]
## ...1 title artist variable genre year bpm nrgy dnce dB live val
## <dbl> <chr> <chr> <chr> <chr> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
## 1 573 "Memor… Maroo… pop pop 2019 91 32 76 -7 8 57
## 2 574 "Lose … Selen… dance pop 2019 102 34 51 -9 21 9
## 3 575 "Someo… Lewis… pop pop 2019 110 41 50 -6 11 45
## 4 576 "Se\xf… Shawn… canadian pop 2019 117 54 76 -6 9 75
## 5 577 "How D… Sam S… pop pop 2019 111 68 48 -5 8 35
## 6 578 "South… Ed Sh… pop pop 2019 98 62 86 -6 9 67
## 7 579 "Tramp… SHAED electro… pop 2019 127 46 62 -6 14 50
## 8 580 "Happi… Marsh… brostep edm 2019 100 79 69 -3 17 67
## 9 581 "Truth… Lizzo escape Other 2019 158 62 72 -3 12 41
## 10 582 "Good … Lizzo escape Other 2019 96 89 67 -3 74 48
## # ℹ 587 more rows
## # ℹ 4 more variables: dur <dbl>, acous <dbl>, spch <dbl>, pop <dbl>
most_popular_gen <- most_popular_genre%>%count(genre)%>%arrange(desc(n))
most_popular_gen%>%ggplot(aes(x=reorder(genre,n),y=n))+geom_col(fill="magenta")+ggtitle("Popular genre 2010-2019 ")+coord_flip()
Genre_10 <- spotify_data%>%arrange(desc(pop))%>%filter(year==2010)%>%group_by(`genre`)
Genre_10
## # A tibble: 51 × 16
## # Groups: genre [4]
## ...1 title artist variable genre year bpm nrgy dnce dB live val
## <dbl> <chr> <chr> <chr> <chr> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
## 1 1 Hey, S… Train neo alt … 2010 97 89 67 -4 8 80
## 2 2 Love T… Eminem detroit hip … 2010 87 93 75 -5 52 64
## 3 3 TiK ToK Kesha dance pop 2010 120 84 76 -3 29 71
## 4 4 Bad Ro… Lady … dance pop 2010 119 92 70 -4 8 71
## 5 5 Just t… Bruno… pop pop 2010 109 84 64 -5 9 43
## 6 6 Baby Justi… canadian pop 2010 65 86 73 -5 11 54
## 7 7 Dynami… Taio … dance pop 2010 120 78 75 -4 4 82
## 8 8 Secrets OneRe… dance pop 2010 148 76 52 -6 12 38
## 9 9 Empire… Alici… hip hip … 2010 93 37 48 -8 12 14
## 10 10 Only G… Rihan… barbadi… pop 2010 126 72 79 -4 7 61
## # ℹ 41 more rows
## # ℹ 4 more variables: dur <dbl>, acous <dbl>, spch <dbl>, pop <dbl>
Genre_19 <- spotify_data%>%arrange(desc(pop))%>%filter(year==2019)%>%group_by(`genre`)
Genre_19
## # A tibble: 30 × 16
## # Groups: genre [5]
## ...1 title artist variable genre year bpm nrgy dnce dB live val
## <dbl> <chr> <chr> <chr> <chr> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
## 1 573 "Memor… Maroo… pop pop 2019 91 32 76 -7 8 57
## 2 574 "Lose … Selen… dance pop 2019 102 34 51 -9 21 9
## 3 575 "Someo… Lewis… pop pop 2019 110 41 50 -6 11 45
## 4 576 "Se\xf… Shawn… canadian pop 2019 117 54 76 -6 9 75
## 5 577 "How D… Sam S… pop pop 2019 111 68 48 -5 8 35
## 6 578 "South… Ed Sh… pop pop 2019 98 62 86 -6 9 67
## 7 579 "Tramp… SHAED electro… pop 2019 127 46 62 -6 14 50
## 8 580 "Happi… Marsh… brostep edm 2019 100 79 69 -3 17 67
## 9 581 "Truth… Lizzo escape Other 2019 158 62 72 -3 12 41
## 10 582 "Good … Lizzo escape Other 2019 96 89 67 -3 74 48
## # ℹ 20 more rows
## # ℹ 4 more variables: dur <dbl>, acous <dbl>, spch <dbl>, pop <dbl>
Here I aim to analyze songs with longest and shortest durations, the highest and lowest BPM, assess the energy levels of each song, identify energetic tracks, categorize genres that evoke energy, the loudness and the quietness song, highlight dance-friendly songs, and showcase songs with a positive sound (Happy,Cheerful).
duration <-spotify_data%>%ggplot(aes(x=reorder(genre,dur),y=dur))+geom_boxplot(fill="magenta")+ggtitle("Song Duration")+theme_light()
duration
Song with the longest duration
max_pop <-spotify_data%>%filter(dur>=400)%>%select(artist,dur,title)
max_pop
## # A tibble: 2 × 3
## artist dur title
## <chr> <dbl> <chr>
## 1 Justin Timberlake 424 "TKO"
## 2 Florence + The Machine 403 "Wish That You Were Here - From \x93Miss Peregri…
Song with the shortest duration
min_pop <-spotify_data%>%filter(dur<=150)%>%select(artist,dur,title)
min_pop
## # A tibble: 2 × 3
## artist dur title
## <chr> <dbl> <chr>
## 1 Justin Bieber 134 Mark My Words
## 2 R3HAB 148 All Around The World (La La La)
bpm <- spotify_data%>%ggplot(aes(x=reorder(genre,bpm),y=bpm))+geom_boxplot(fill="magenta")+ggtitle("bpm")+theme_light()
bpm
bpm_high <-spotify_data%>%filter(bpm>=200)%>%group_by(artist)%>%summarise(title,bpm,genre)
bpm_high
## # A tibble: 3 × 4
## artist title bpm genre
## <chr> <chr> <dbl> <chr>
## 1 Fergie L.A.LOVE (la la) 202 pop
## 2 Little Mix How Ya Doin'? (feat. Missy Elliott) 201 pop
## 3 Rihanna FourFiveSeconds 206 pop
bpm_low <-spotify_data%>%filter(bpm<=0)%>%group_by(artist)%>%summarise(title,bpm,genre)
bpm_low
## # A tibble: 1 × 4
## artist title bpm genre
## <chr> <chr> <dbl> <chr>
## 1 Adele Million Years Ago 0 soul
dB <- spotify_data%>%ggplot(aes(x=reorder(genre,dB),dB))+ geom_boxplot(fill="magenta")+ggtitle("dB")+theme_light()
dB
Song with the lowest dB
min_dB <-spotify_data%>%filter(dB<=-50.000)%>%select(artist,dB,title,dur, genre)
min_dB
## # A tibble: 1 × 5
## artist dB title dur genre
## <chr> <dbl> <chr> <dbl> <chr>
## 1 Adele -60 Million Years Ago 227 soul
Song with the highest dB
max_dB <-spotify_data%>%filter(dB>=-2.000)%>%select(artist,dB,title,dur,genre)
max_dB
## # A tibble: 5 × 5
## artist dB title dur genre
## <chr> <dbl> <chr> <dbl> <chr>
## 1 Britney Spears -2 3 213 pop
## 2 One Direction -2 What Makes You Beautiful 200 pop
## 3 Nicki Minaj -2 Starships 211 pop
## 4 Jonas Brothers -2 Pom Poms 198 pop
## 5 Galantis -2 Rich Boy 184 Other
energy <- spotify_data%>%ggplot(aes(x=reorder(genre,nrgy),nrgy))+ geom_boxplot(fill="magenta")+ggtitle("The energy of each genre")+theme_light()
energy
Song has the higher energy
High_energy <-spotify_data%>%arrange(desc(nrgy))%>%select(artist,nrgy,title,year,genre)
High_energy
## # A tibble: 597 × 5
## artist nrgy title year genre
## <chr> <dbl> <chr> <dbl> <chr>
## 1 Martin Solveig 98 Hello 2010 Other
## 2 Jonas Brothers 98 Pom Poms 2013 pop
## 3 Pitbull 96 Don't Stop the Party (feat. TJR) 2012 pop
## 4 Avril Lavigne 96 Rock N Roll 2013 pop
## 5 OneRepublic 95 All The Right Moves 2010 pop
## 6 Tinie Tempah 95 Written in the Stars (feat. Eric Turne… 2010 pop
## 7 Tinie Tempah 95 Written in the Stars (feat. Eric Turne… 2011 pop
## 8 Little Mix 95 How Ya Doin'? (feat. Missy Elliott) 2013 pop
## 9 5 Seconds of Summer 95 She Looks So Perfect 2014 pop
## 10 Jennifer Lopez 95 Booty 2015 pop
## # ℹ 587 more rows
dance_genre <- spotify_data%>%ggplot(aes(x=reorder(genre,dnce),y=dnce))+geom_boxplot(fill="magenta")+ggtitle("Genre to dance ")+theme_light()
dance_genre
danceable_song <-spotify_data%>%arrange(desc(dnce))%>%select(artist,dnce,title,genre)
danceable_song
## # A tibble: 597 × 4
## artist dnce title genre
## <chr> <dbl> <chr> <chr>
## 1 Selena Gomez 97 Bad Liar pop
## 2 Cardi B 97 Drip (feat. Migos) pop
## 3 Nicki Minaj 96 Anaconda pop
## 4 Pharrell Williams 93 Come Get It Bae pop
## 5 Meghan Trainor 93 Me Too pop
## 6 Missy Elliott 93 WTF (Where They From) pop
## 7 Cardi B 93 Bodak Yellow pop
## 8 N.E.R.D 92 Lemon hip hop
## 9 Iggy Azalea 91 Fancy hip hop
## 10 Jennifer Hudson 90 Dangerous pop
## # ℹ 587 more rows
Pos_sound <- spotify_data%>%ggplot(aes(x=reorder(genre,val),y=val))+geom_boxplot(fill="magenta")+ggtitle("The positive sound of each genre ")+theme_light()
Pos_sound
Positive_Sound <-spotify_data%>%arrange(desc(val))%>%select(artist,val,title,genre)
Positive_Sound
## # A tibble: 597 × 4
## artist val title genre
## <chr> <dbl> <chr> <chr>
## 1 Austin Mahone 98 "Mmm Yeah (feat. Pitbull)" pop
## 2 Shawn Mendes 97 "There's Nothing Holdin' Me Back" pop
## 3 Pharrell Williams 96 "Happy - From \"Despicable Me 2\"" pop
## 4 Meghan Trainor 96 "All About That Bass" pop
## 5 Pitbull 95 "Don't Stop the Party (feat. TJR)" pop
## 6 Meghan Trainor 95 "Lips Are Movin" pop
## 7 Jonas Brothers 95 "Sucker" pop
## 8 Taylor Swift 94 "Shake It Off" pop
## 9 Bruno Mars 94 "Treasure" pop
## 10 Ed Sheeran 94 "Sing" pop
## # ℹ 587 more rows
Based on the analysis above, I obtained results that in 2010, the most popular song was ‘Hey, Soul Sister’ by Train in the alternative rock genre, while in 2019 ‘Memories’ by Maroon 5 in the pop genre took the lead. The top artists in 2010 were The Black Eyed Peas, Kesha, and Christina Aguilera, whereas in 2019, Ed Sheeran stood out. Throughout the period from 2010 to 2019, the pop genre remained the most popular. Analyzing song durations, Justin Timberlake’s track was the longest at 424 seconds, while Justin Bieber’s ‘Mark My Word’ was the shortest. In terms of tempo, Rihanna’s ‘FourFiveSeconds’ in the pop genre had the fastest BPM, while Adele’s ‘Million Years Ago’ in the soul genre had the slowest. Songs with loud voices included Britney Spears, One Direction, Nicki Minaj, and Jonas Brothers in the pop genre, with Galantis representing other genres. Adele’s ‘Million Years Ago’ had the lowest loudness level in the soul genre. Energy levels were analyzed, with Martin Solveig’s ‘Hello’ and Jonas Brothers’ ‘Pom Poms’ in the pop genre standing out for their high energy. Danceability was measured, with Selena Gomez’s ‘Bad Liar’ and Cardi B’s ‘Drip (feat. Migos)’ in the pop genre being highlighted as easy to dance to. Austin Mahone’s ‘Mmm Yeah (feat. Pitbull)’ in the pop genre had a high positive value. The correlation between energy and danceability was explored, showing that more energetic songs are easier to dance to. Additionally, higher BPM or tempo can make a song more challenging to dance to. The correlation between decibel levels and energy release was also noted, indicating that louder songs tend to be more energetic. Higher positivity values in songs also contribute to their energetic feel.