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!