¿Cómo podemos extraer la fecha a partir del nombre del partido de datos de FotMob?
Para extraer la fecha de la columna
matchName y convertirla a un formato de fecha utilizable, puedes seguir estos pasos usando la librería lubridate en R.Ejemplo Completo en R
Aquí tienes el código completo para un ejemplo reproducible:
# Crear un dataframe de ejemplo
league <- tibble::tribble(
~matchId, ~matchName, ~home_id, ~home_name, ~home_score, ~away_id, ~away_name, ~away_score,
4221753, "1. FC Köln-vs-TSG Hoffenheim_Sat, Sep 16, 2023, 13:30 UTC", 8722, "1. FC Köln", 1, 8226, "TSG Hoffenheim", 3,
4221789, "1. FC Köln-vs-Borussia Mönchengladbach_Sun, Oct 22, 2023, 13:35 UTC", 8722, "1. FC Köln", 3, 9788, "Borussia Mönchengladbach", 1,
4222378, "Augsburg-vs-VfB Stuttgart_Fri, May 10, 2024, 18:30 UTC", 8406, "Augsburg", 0, 10269, "VfB Stuttgart", 1,
4221739, "Borussia Dortmund-vs-FC Heidenheim_Fri, Sep 1, 2023, 18:30 UTC", 9789, "Borussia Dortmund", 2, 94937, "FC Heidenheim", 2,
4534588, "FC Heidenheim-vs-RB Leipzig_Sun, Oct 6, 2024, 13:30 UTC", 94937, "FC Heidenheim", 0, 178475, "RB Leipzig", 1
)
# Cargar las librerías necesarias
library(tidyverse)
library(lubridate)
# Procesar el dataframe
clean_league <- league |>
tidyr::separate(matchName, c("match_name", "date"), "_") |>
mutate(date = lubridate::parse_date_time(date, "amdYHM"))
# Ver el resultado
print(clean_league)Cada paso en el código que utilizaste tiene un propósito específico para transformar tus datos. Aquí está la descripción del papel que juega cada uno:
Paso 1: tidyr::separate()
El primer paso utiliza la función separate() del paquete tidyr para dividir la columna matchName en dos nuevas columnas: match_name y date.
matchName: Es la columna original que contiene tanto el nombre del partido como la fecha.c("match_name", "date"): Nombra las dos nuevas columnas que se crearán. La primera parte de la cadena original (1. FC Köln-vs-TSG Hoffenheim) irá amatch_name, y la segunda parte (Sat, Sep 16, 2023, 13:30 UTC) irá adate."_": Este es el separador que le indica a la función dónde debe hacer la división. En tu caso, el guion bajo (_) es el carácter que separa el nombre del partido de la fecha.
En este punto, la columna date es todavía una cadena de texto (como "Sat, Sep 16, 2023, 13:30 UTC"), no un formato de fecha que se pueda analizar o usar para cálculos.
Paso 2: lubridate::parse_date_time()
El siguiente paso es la función parse_date_time() del paquete lubridate. Esta función es muy flexible y robusta para convertir cadenas de texto en objetos de fecha y hora.
date: Es la columna que acabas de crear y que contiene las cadenas de texto con las fechas."amdYHM": Este es el orden de los componentes de la fecha que le estás diciendo alubridateque espere. Cada letra representa un componente:a: Día de la semana (abreviado, como "Sat" o "Sun").m: Mes (abreviado, como "Sep" o "Oct").d: Día del mes (como "16" o "22").Y: Año de 4 dígitos (como "2023").H: Hora (formato de 24 horas, como "13").M: Minuto (como "30" o "35").
Esta función es inteligente y puede manejar los espacios, comas y la palabra "UTC" automáticamente, lo que la hace ideal para tu caso.
Al finalizar, la columna date se convierte en un objeto de fecha y hora, listo para ser utilizado en cualquier análisis temporal, como agrupar datos por año.

Comentarios
Publicar un comentario