PRIA práctica 5: Manipulación de datos avanzada (EVALUABLE)
Instrucciones generales
Esta práctica se ha de realizar por grupos de entre 3 y 5 personas. En la cabecera del fichero entregable, debéis indicar los nombres de todos los alumnos del grupo.
Se recomienda usar un tablero kanban, como trello para comunicaciones entre miembros del equipo, seguimiento de tareas, etc.
1. Descargando datos externos
Ve a https://www.football-data.co.uk/spainm.php observa los enlaces con los datos de la liga primera y segunda división. Observa los nombres de las ligas europeas.
Descarga desde el navegador el fichero más actualizado. SP1.csv
Observa bien la url de descarga y trata de obtener el fichero dentro de script de R con la función download.file
1.1 Automatización de descargas de datos históricos
Realiza un script en R para descargar de forma automática todos los archivos desde la temporada 2000/2001 hasta la temporada pasada (2022/2023). Intenta evitar bucles innecesarios y repetición de código. Preferiblemente, usa la familia apply
.
Fíjate que la estructura de la url cambia ligeramente, aunque los nombres de los archivos se llaman igual. Ponle a los archivos de salida el formato 2122_SP1.csv, donde 2122 es la temporada 2021/2022 y SP1 indica la liga (Spain, 1º div).
La actividad se va a limitar a la 1º y 2º división españolas, liga inglesa, alemana e italiana.
1.2 Descarga último dato
Usando funciones de fecha para detectar el año, implementa una función que descargue y/o reemplace (si existía) el archivo de la presente temporada. El argumento de la función será el nombre de la liga.
2. Data Wrangling
La información relevante de los datos está contenida en las variables:
Div,Date,HomeTeam,AwayTeam,FTHG,FTAG,FTR,HTHG,HTAG,HTR En la siguiente url, se indica qué es cada variable:
Realiza una exploración de los datos del último fichero
2.1 Seleccionar columnas de interés
Selecciona las columnas de interés: Div,Date,HomeTeam,AwayTeam,FTHG,FTAG,FTR,HTHG,HTAG,HTR
2.2 Pivote, union y ordenación de datos
Realiza la manipulación de datos oportuna, suponiendo que una victora son 3 puntos y un empate 1 punto. La estructura debe contener:
Puntos (pts), partidos jugados (PJ), partidos ganados (PG), perdidos (PP), empatados (PE), goles a favor (GF), goles en contra (GC)
Imprime la clasificación actual de la liga en el formato:
3. Base de datos Ligas
Implementa una función que reciba como parámetros la liga y la temporada e imprima la clasificación. Si la temporada es la actual, debe actualizarse el fichero, usando la función del ejercicio 1.2
Las posibles ligas y temporadas serán las indicadas en el ejercicio
4. Exploración de los datos
Representa gráficamente el promedio de goles por partido temporada a temporada en la que se vea una comparativa histórica entre primera y segunda división.
Recomendaciones
Las tareas no son totalemente dependientes unas de otras. Por lo que es factible repartir el trabajo más pesado (1 automatización de descarga histórica, 2 función de descarga actual, 3 generar clasificación a partir de resultados por partido)
Usad git hub para trabajar en equipo