Data fra Superligaen?

Author:

Hvis jeg skulle hente data fra samtlige kampe i superligaen, bare fordi man kan, så ville jeg gøre følgende:

Gå til https://api.superliga.dk/events-v2?appName=dk.releaze.livecenter.spdk&access_token=5b6ab6f5eb84c60031bbbd24&env=production&locale=da&seasonId=20962&status&sortDirection=desc , og downloade json-filen

Denne ville jeg enten selv udtrække de 132 eventids fra eller bede Chatgtp eller en anden ven om at gøre arbejdet. Den efterfølgende csv-fil ville jeg importere til Rstudio med navnet eventids_132 og med kolonnenavnet Eventid for dataframen.

Derefter ville jeg overveje at bruge flg. script i R, som downloader alle spillede og ikke spillede kampe af de 132 (pt. mangler der 121-132 at blive spillet), gemmer dem i en mappe for hver runde med navn efter deltagerne i kampene.

library(httr)
library(jsonlite)

get_event_data <- function(eventId) {
  base_url <- "https://api.superliga.dk/opta-stats/events/"
  query_params <- paste0(eventId, "/teams?appName=superligadk&access_token=5b6ab6f5eb84c60031bbbd24&env=production&locale=da")
  full_url <- paste0(base_url, query_params)
  
  response <- GET(full_url)
  if (status_code(response) == 200) {
    data <- content(response, "parsed")
    return(data)
  } else {
    warning("Failed to fetch data for eventID: ", eventId)
    return(NULL)
  }
}

event_ids <- (event_ids_132$EventID)  # Antager dette er din liste af eventIDs

for (event_id in event_ids) {
  event_data <- get_event_data(event_id)
  if (!is.null(event_data)) {
    home_stats <- event_data$homeStats
    away_stats <- event_data$awayStats
    home_short_name <- event_data$homeShortName
    away_short_name <- event_data$awayShortName
    
    # Saml alle unikke statistiknavne
    all_stats <- unique(c(names(home_stats), names(away_stats)))
    
    # Kontroller, om der er nogle statistiknavne, før oprettelsen af datarammen
    if (length(all_stats) > 0) {
      stats_data <- data.frame(Stat_Name = all_stats, Home_Stats = NA, Away_Stats = NA, stringsAsFactors = FALSE)
      
      # Udfyld datarammen med de faktiske værdier
      for (stat in all_stats) {
        stats_data[stats_data$Stat_Name == stat, "Home_Stats"] <- ifelse(stat %in% names(home_stats), home_stats[[stat]], NA)
        stats_data[stats_data$Stat_Name == stat, "Away_Stats"] <- ifelse(stat %in% names(away_stats), away_stats[[stat]], NA)
      }
    } else {
      # Opret en tom dataramme, hvis der ikke er nogen statistiknavne
      stats_data <- data.frame(Stat_Name = character(), Home_Stats = numeric(), Away_Stats = numeric(), stringsAsFactors = FALSE)
    }
    
    dir_name <- paste0("Round_", event_data$round)
    if (!dir.exists(dir_name)) {
      dir.create(dir_name, recursive = TRUE)
    }
    
    file_name <- paste0(home_short_name, "_vs_", away_short_name, ".csv")
    write.csv(stats_data, file.path(dir_name, file_name), row.names = FALSE)
  }
}

Men hvem gider dog at gøre det. Nu er det tid til at drible ud i byen for at se FCK tabe til de olieindsmurte giganter fra Manchester.

God kamp!