Trabajo elaborado para la asignatura “Programación y manejo de datos en la era del Big Data” de la Universitat de València durante el curso 2021-2022. El repo del trabajo está aquí.
La página web de la asignatura y los trabajos de mis compañeros pueden verse aquí.
El objetivo principal de este trabajo sería un análisis de los Juegos Olímipicos en la historia a través de diferentes variables: género, disciplinas, medallas… Se pondrá en práctica muchos de los conocimientos adquiridos en las clases de ‘Programación y manejo de datos en la era de Big Data’ con sus respectivas y más importantes funciones, gráficos y demás que hemos asimilado durante el curso.
Los Juegos Olímpicos son el mayor evento deportivo internacional multidisciplinario en el que participan atletas de diversas partes del mundo. Los Juegos Olímpicos son considerados la principal competición del mundo deportivo, con más de doscientas naciones participantes. Existen dos tipos: los Juegos Olímpicos de Verano y los Juegos Olímpicos de Invierno, que se realizan con un intervalo de dos años, según la Carta Olímpica: «Los Juegos de la Olimpiada se celebran durante el primer año de una Olimpiada y los Juegos Olímpicos de Invierno durante su tercer año. En nuestro trabajo, algunos de los análisis tratarab sobre los Juegos Olímpicos de Verano y otros de los Juegos Olímpicos en general.
Los datos para realizar el análisis oportuno han sido extraidos de Kaggle ya que dicha plataforma contenía unna gran variedad de datos relacionados con esta gran competición.
El análisis se ha realizado sobre 4 dataframes:
aa: 31165 observaciones.
bb:11085 observaciones.
cc:46 observaciones.
dd:93 observaciones.
library(ggplot2)
library(readr)
library(plyr)
library(rworldmap)
library(repr)
library(plotly)
Como se puede observar en el gráfico, la participación de Hombres y mujeres desde 1896 hasta 2012 no ha estado equilibrada. Mediante un gráfico de lineas, se visualiza que año a año, el número de hombres que han participado medidio por la variable freq ha sido bastante superior al de mujeres sobretodo en el pico del año 1920 donde la participación de las mujeres (43) en el juego estaba muy por debajo de la del género masculino (1255). Se ha animado el ggplot para ver mejor el resultado.
df_aa <- aa %>%
select(Year, Gender)%>%
group_by(Gender,Year)%>%
count()
ggplot_aa <- ggplot() + geom_line(data = df_aa, aes(x= Year, y=freq, group = Gender, color = Gender)) +
labs(title = 'Participación año a año (género)',
color = "Género") + xlab("Año") + ylab("Nº de Hombres y Mujeres") + theme_void()
ggplotly(ggplot_aa)
Este gráfico muestra muy visualmente 10 puntos que corresponden a los 10 países que han ganado más medallas en los Juegos Olímipicos.Se ha restringido a 10 para que quedara más visual con la función head.Además se han combinado los colores del gráfico con la opción theme para que se viera claramente. Podemos encontrar países como Australia, Francia, Alemania, Japón,ROC… y claramente, si pinchamos en el punto más alto , el país que destaca es People’s Republic of China con un totoal de 88 medallas.
df_dd <- dd %>%
head(10)
ggplotc <- ggplot(df_dd, aes(Pais, Total, size = 0.75, color= "orange")) +
geom_point() +
theme_bw()+
theme(legend.position = "none") +
labs(x = NULL) + theme(axis.title.x=element_blank(),
axis.text.x=element_blank(),
axis.ticks.x=element_blank()) + labs(title= "Los 10 países con más Medallas") +
theme(panel.background = element_rect(fill = 'wheat1', colour = 'red')) + theme(panel.background = element_rect(fill = "White"),
plot.background = element_rect(fill = "#EEDFCC",
colour = "#EEDFCC"))
ggplotly(ggplotc)
df_dd
Rank | Pais | Gold | Silver | Bronze | Total | Rank by Total |
---|---|---|---|---|---|---|
1 | United States of America | 39 | 41 | 33 | 113 | 1 |
2 | People’s Republic of China | 38 | 32 | 18 | 88 | 2 |
3 | Japan | 27 | 14 | 17 | 58 | 5 |
4 | Great Britain | 22 | 21 | 22 | 65 | 4 |
5 | ROC | 20 | 28 | 23 | 71 | 3 |
6 | Australia | 17 | 7 | 22 | 46 | 6 |
7 | Netherlands | 10 | 12 | 14 | 36 | 9 |
8 | France | 10 | 12 | 11 | 33 | 10 |
9 | Germany | 10 | 11 | 16 | 37 | 8 |
10 | Italy | 10 | 10 | 20 | 40 | 7 |
Como podemos ver, los países con más medallas en los Juegos Olímpicos son los países desarrollados de América del Norte, Asia y Europa. Los países más pobres de África y América del Sur no destacan por ello.
Este mapa ha sido realizado de forma más costosa con lo aprendido en clase y la información proporcionada en un kaggle sobre el tema a analizar.
count=c(1)
aa$MedalCount=count
aa$Athlete=as.character(aa$Athlete)
options(repr.plot.width=6, repr.plot.height=6)
world <- map_data(map="world")
world <- world[world$region != "Antarctica",] #
y=ddply(aa, .(Country,Medal), numcolwise(sum))
sPDF <- joinCountryData2Map( y
,joinCode = "ISO3"
,nameJoinColumn = "Country")
#> 209 codes from your data successfully matched countries in the map
#> 140 codes from your data failed to match with a country code in the map
#> 159 codes from the map weren't represented in your data
mapCountryData(sPDF
,nameColumnToPlot='MedalCount')
En este apartado se analiza el tipo de medallas que se han ganado en cinco países diferentes. Se han filtrado los países y agrupado según el país y el tipo de medalla. Como se observa en el gráfico, el país con más medallas de oro representado en color verde se identifica con USA seguido por Rusia. El que menos medallas de oro ha ganado es Alemania. USA también destaca por su número de medallas de plata y de bronze. Es generalmente el país que más destaca en el análisis.
df_bb <- aa %>%
select(Country, Medal, MedalCount, Year)%>%
group_by(Country, MedalCount)%>%
filter(Country %in% c("GER", "FRA", "GBR", "URS", "USA") )
ggplota <- ggplot(df_bb,aes(x=reorder(Country,MedalCount),y=MedalCount,fill=Medal,group=Medal))+geom_bar(stat='identity')
ggplota
Mediante un gráfico de barras invertido con coord flip para mejorar la visualización , podemos observar que USA cuenta con el mayor número de atletas que participan en las Olimpiadas seguido de Japón. Nuestro país se queda por debajo de estos.Este gráfico también es interactivo.
atletas_mundo <- bb%>%
group_by(NOC) %>%
summarise(count = n()) %>%
arrange(desc(count))%>%
head(10)
atletas_mundo
NOC | count |
---|---|
United States of America | 615 |
Japan | 586 |
Australia | 470 |
People’s Republic of China | 401 |
Germany | 400 |
France | 377 |
Canada | 368 |
Great Britain | 366 |
Italy | 356 |
Spain | 324 |
ggplotb <-ggplot(atletas_mundo, aes(x = NOC, y = count)) +
geom_col(aes(fill = NOC), color = "black") + theme(legend.position = 'none')+ coord_flip() + xlab("Atletas") + ylab("Países")
ggplotly(ggplotb)
Mediante este gráfico circular, se observa la disciplina más practicada en los juegos olímpicos. Se trata de gimnasia y voley playa. Una de las que menos es basket. Hemos restringido el análisis a 10 disciplinas.Con theme he modificado la estética del gráfico para que con el color se vea mejor.
df_cc <- cc %>%
arrange(desc(Total))%>%
slice_max(Total, n=10)
df_cca <- ggplot(df_cc, aes(x=reorder(Discipline, Total), y=Total, fill=Discipline))+
geom_bar(stat="identity") +
theme(legend.position = "none") +
coord_polar(start = 0.01) +
labs (x="Disciplinas") + labs(y="Total personas practican") + labs(title = "Num. Personas que practican cada disciplina") + theme(panel.background = element_rect(fill = "#EEDFCC"),
plot.background = element_rect(fill = "#EEDFCC"))
df_cc
Discipline | Female | Male | Total |
---|---|---|---|
Beach Volleyball | 48 | 48 | 96 |
Rhythmic Gymnastics | 96 | 0 | 96 |
Canoe Slalom | 41 | 41 | 82 |
Karate | 40 | 42 | 82 |
Skateboarding | 40 | 40 | 80 |
Swimming | 361 | 418 | 779 |
Cycling Mountain Bike | 38 | 38 | 76 |
Modern Pentathlon | 36 | 36 | 72 |
3x3 Basketball | 32 | 32 | 64 |
Football | 264 | 344 | 608 |
df_cca
Principalmente me he basado en los tutoriales de lapágina web de trabajo de la asignatura y de Kaggle que seran notificados en la bibliografía del trabajo.
“Nadie llega tan lejos si no es para seguir”
En este trabajo he asentado lo que hemos aprendido en el curso de Programación y manejo de datos en la era de Big data. Sobretodo he enfatizado en la visualización de los diferentes ggplots. Este tema siempre me ha llamado la atención y se ha podido observar un breve análisis sobre las variables más significativas del tema. Puede servir de información útil para la gente aficionada en el tema.
- Session info ---------------------------------------------------------------
setting value
version R version 4.1.1 (2021-08-10)
os Windows 10 x64 (build 19042)
system x86_64, mingw32
ui RTerm
language (EN)
collate Spanish_Spain.1252
ctype Spanish_Spain.1252
tz Europe/Paris
date 2022-01-04
pandoc 2.11.4 @ C:/Users/Usuario/OneDrive/Documentos/RStudio/bin/pandoc/ (via rmarkdown)
- Packages -------------------------------------------------------------------
package * version date (UTC) lib source
assertthat 0.2.1 2019-03-21 [1] CRAN (R 4.1.2)
backports 1.3.0 2021-10-27 [1] CRAN (R 4.1.1)
base64enc 0.1-3 2015-07-28 [1] CRAN (R 4.1.1)
broom 0.7.10 2021-10-31 [1] CRAN (R 4.1.2)
cellranger 1.1.0 2016-07-27 [1] CRAN (R 4.1.2)
cli 3.1.0 2021-10-27 [1] CRAN (R 4.1.2)
clipr 0.7.1 2020-10-08 [1] CRAN (R 4.1.2)
colorspace 2.0-2 2021-06-24 [1] CRAN (R 4.1.2)
crayon 1.4.2 2021-10-29 [1] CRAN (R 4.1.2)
crosstalk 1.2.0 2021-11-04 [1] CRAN (R 4.1.2)
curl 4.3.2 2021-06-23 [1] CRAN (R 4.1.2)
data.table 1.14.2 2021-09-27 [1] CRAN (R 4.1.2)
DBI 1.1.1 2021-01-15 [1] CRAN (R 4.1.2)
dbplyr 2.1.1 2021-04-06 [1] CRAN (R 4.1.2)
desc 1.4.0 2021-09-28 [1] CRAN (R 4.1.2)
details 0.2.1 2020-01-12 [1] CRAN (R 4.1.2)
digest 0.6.29 2021-12-01 [1] CRAN (R 4.1.2)
dotCall64 1.0-1 2021-02-11 [1] CRAN (R 4.1.2)
dplyr * 1.0.7 2021-06-18 [1] CRAN (R 4.1.2)
ellipsis 0.3.2 2021-04-29 [1] CRAN (R 4.1.2)
evaluate 0.14 2019-05-28 [1] CRAN (R 4.1.2)
fansi 0.5.0 2021-05-25 [1] CRAN (R 4.1.2)
farver 2.1.0 2021-02-28 [1] CRAN (R 4.1.2)
fastmap 1.1.0 2021-01-25 [1] CRAN (R 4.1.2)
fields 13.3 2021-10-30 [1] CRAN (R 4.1.2)
forcats * 0.5.1 2021-01-27 [1] CRAN (R 4.1.2)
foreign 0.8-81 2020-12-22 [2] CRAN (R 4.1.1)
fs 1.5.2 2021-12-08 [1] CRAN (R 4.1.2)
generics 0.1.1 2021-10-25 [1] CRAN (R 4.1.2)
ggplot2 * 3.3.5 2021-06-25 [1] CRAN (R 4.1.2)
glue 1.5.1 2021-11-30 [1] CRAN (R 4.1.2)
gridExtra 2.3 2017-09-09 [1] CRAN (R 4.1.2)
gtable 0.3.0 2019-03-25 [1] CRAN (R 4.1.2)
haven 2.4.3 2021-08-04 [1] CRAN (R 4.1.2)
here 1.0.1 2020-12-13 [1] CRAN (R 4.1.2)
highr 0.9 2021-04-16 [1] CRAN (R 4.1.2)
hms 1.1.1 2021-09-26 [1] CRAN (R 4.1.2)
htmltools 0.5.2 2021-08-25 [1] CRAN (R 4.1.2)
htmlwidgets 1.5.4 2021-09-08 [1] CRAN (R 4.1.2)
httr 1.4.2 2020-07-20 [1] CRAN (R 4.1.2)
jquerylib 0.1.4 2021-04-26 [1] CRAN (R 4.1.2)
jsonlite 1.7.2 2020-12-09 [1] CRAN (R 4.1.2)
klippy * 0.0.0.9500 2021-12-13 [1] Github (rlesur/klippy@378c247)
knitr * 1.36 2021-09-29 [1] CRAN (R 4.1.2)
labeling 0.4.2 2020-10-20 [1] CRAN (R 4.1.1)
lattice 0.20-44 2021-05-02 [2] CRAN (R 4.1.1)
lazyeval 0.2.2 2019-03-15 [1] CRAN (R 4.1.2)
lifecycle 1.0.1 2021-09-24 [1] CRAN (R 4.1.2)
lubridate 1.8.0 2021-10-07 [1] CRAN (R 4.1.2)
magrittr 2.0.1 2020-11-17 [1] CRAN (R 4.1.2)
maps 3.4.0 2021-09-25 [1] CRAN (R 4.1.2)
maptools 1.1-2 2021-09-07 [1] CRAN (R 4.1.2)
modelr 0.1.8 2020-05-19 [1] CRAN (R 4.1.2)
munsell 0.5.0 2018-06-12 [1] CRAN (R 4.1.2)
openxlsx 4.2.4 2021-06-16 [1] CRAN (R 4.1.2)
pillar 1.6.4 2021-10-18 [1] CRAN (R 4.1.2)
pkgconfig 2.0.3 2019-09-22 [1] CRAN (R 4.1.2)
plotly * 4.10.0 2021-10-09 [1] CRAN (R 4.1.2)
plyr * 1.8.6 2020-03-03 [1] CRAN (R 4.1.2)
png 0.1-7 2013-12-03 [1] CRAN (R 4.1.1)
purrr * 0.3.4 2020-04-17 [1] CRAN (R 4.1.2)
R6 2.5.1 2021-08-19 [1] CRAN (R 4.1.2)
Rcpp 1.0.7 2021-07-07 [1] CRAN (R 4.1.2)
readr * 2.1.1 2021-11-30 [1] CRAN (R 4.1.2)
readxl 1.3.1 2019-03-13 [1] CRAN (R 4.1.2)
remotes 2.4.2 2021-11-30 [1] CRAN (R 4.1.2)
repr * 1.1.3 2021-01-21 [1] CRAN (R 4.1.2)
reprex 2.0.1 2021-08-05 [1] CRAN (R 4.1.2)
rio 0.5.29 2021-11-22 [1] CRAN (R 4.1.2)
rlang 0.4.12 2021-10-18 [1] CRAN (R 4.1.2)
rmarkdown 2.11 2021-09-14 [1] CRAN (R 4.1.2)
rprojroot 2.0.2 2020-11-15 [1] CRAN (R 4.1.2)
rstudioapi 0.13 2020-11-12 [1] CRAN (R 4.1.2)
rvest 1.0.2 2021-10-16 [1] CRAN (R 4.1.2)
rworldmap * 1.3-6 2016-02-03 [1] CRAN (R 4.1.2)
scales 1.1.1 2020-05-11 [1] CRAN (R 4.1.2)
sessioninfo 1.2.2 2021-12-06 [1] CRAN (R 4.1.2)
sp * 1.4-6 2021-11-14 [1] CRAN (R 4.1.2)
spam 2.7-0 2021-06-25 [1] CRAN (R 4.1.2)
stringi 1.7.6 2021-11-29 [1] CRAN (R 4.1.2)
stringr * 1.4.0 2019-02-10 [1] CRAN (R 4.1.2)
tibble * 3.1.6 2021-11-07 [1] CRAN (R 4.1.2)
tidyr * 1.1.4 2021-09-27 [1] CRAN (R 4.1.2)
tidyselect 1.1.1 2021-04-30 [1] CRAN (R 4.1.2)
tidyverse * 1.3.1 2021-04-15 [1] CRAN (R 4.1.2)
tzdb 0.2.0 2021-10-27 [1] CRAN (R 4.1.2)
utf8 1.2.2 2021-07-24 [1] CRAN (R 4.1.2)
vctrs 0.3.8 2021-04-29 [1] CRAN (R 4.1.2)
viridis 0.6.2 2021-10-13 [1] CRAN (R 4.1.2)
viridisLite 0.4.0 2021-04-13 [1] CRAN (R 4.1.2)
withr 2.4.3 2021-11-30 [1] CRAN (R 4.1.2)
xfun 0.28 2021-11-04 [1] CRAN (R 4.1.2)
xml2 1.3.3 2021-11-30 [1] CRAN (R 4.1.2)
yaml 2.2.1 2020-02-01 [1] CRAN (R 4.1.1)
zip 2.2.0 2021-05-31 [1] CRAN (R 4.1.2)
[1] C:/Users/Usuario/Documents/R/win-library/4.1
[2] C:/Program Files/R/R-4.1.1/library
------------------------------------------------------------------------------