#' Get Understat season match results
#'
#' Returns match results for all matches played in the selected league season from Understat.com
#'
#' @param league the available leagues in Understat as outlined below
#' @param season_start_year the year the season started
#'
#' The leagues currently available for Understat are:
#' \emph{"EPL"}, \emph{"La liga}", \emph{"Bundesliga"},
#' \emph{"Serie A"}, \emph{"Ligue 1"}, \emph{"RFPL"}
#'
#' @return returns a dataframe of match results for a selected league season
#'
#' @importFrom magrittr %>%
#' @importFrom rlang .data
#'
#' @export
understat_league_match_results <- function(league, season_start_year) {
# .pkg_message("Scraping match results data for {league} {season_start_year} season. Please acknowledge understat.com as the data source")
main_url <- "https://understat.com/"
check_league_name(league)
league <- LEAGUES[[league]]
league_url <- paste0(main_url, "league/", league, "/", season_start_year)
# to get available seasons:
# league_page <- xml2::read_html(league_url)
# avail_seasons <- league_page %>% rvest::html_nodes(xpath = '//*[@name="season"]') %>%
# rvest::html_nodes("option") %>% rvest::html_text() %>% gsub("/.*", "", .)
match_results <- .get_clean_understat_json(page_url = league_url, script_name = "datesData") %>%
dplyr::filter(.data[["isResult"]])
match_results <- cbind(league, match_results)
match_results <- match_results %>%
dplyr::rename(
match_id = .data[["id"]], home_id = .data[["h.id"]], home_team = .data[["h.title"]], home_abbr = .data[["h.short_title"]], away_id = .data[["a.id"]], away_team = .data[["a.title"]], away_abbr = .data[["a.short_title"]],
home_goals = .data[["goals.h"]], away_goals = .data[["goals.a"]], home_xG = .data[["xG.h"]], away_xG = .data[["xG.a"]],
forecast_win = .data[["forecast.w"]], forecast_draw = .data[["forecast.d"]], forecast_loss = .data[["forecast.l"]]
)
match_results <- match_results %>%
dplyr::mutate_at(c("home_goals", "away_goals", "home_xG", "away_xG", "forecast_win", "forecast_draw", "forecast_loss"), as.numeric)
return(match_results)
}
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.