From e712366de533bfa550e095c6fe0618960f47e302 Mon Sep 17 00:00:00 2001 From: Ross Drucker Date: Fri, 6 Oct 2023 16:49:51 -0500 Subject: [PATCH 1/4] Re-unnesting awayTeam and homeTeam per new endpoint response; cannot be unnested via tidyr::unnest() --- R/nba_stats_scoreboard.R | 18 +++++++++++++++--- 1 file changed, 15 insertions(+), 3 deletions(-) diff --git a/R/nba_stats_scoreboard.R b/R/nba_stats_scoreboard.R index 46ecc16e..c38bf338 100644 --- a/R/nba_stats_scoreboard.R +++ b/R/nba_stats_scoreboard.R @@ -91,16 +91,28 @@ nba_schedule <- function( tryCatch( expr = { - resp <- request_with_proxy(url = full_url, params = params, ...) + resp <- request_with_proxy(url = full_url, params = params) league_sched <- resp %>% purrr::pluck("leagueSchedule") games <- league_sched %>% purrr::pluck("gameDates") %>% tidyr::unnest("games") %>% - tidyr::unnest("awayTeam", names_sep = "_") %>% - tidyr::unnest("homeTeam", names_sep = "_") %>% dplyr::select(-dplyr::any_of(c("broadcasters", "pointsLeaders"))) %>% + dplyr::bind_cols( + league_sched %>% + purrr::pluck("gameDates") %>% + tidyr::unnest("games") %>% + purrr::pluck("awayTeam") %>% + dplyr::rename_with(~paste0("away_", .x)) + ) %>% + dplyr::bind_cols( + league_sched %>% + purrr::pluck("gameDates") %>% + tidyr::unnest("games") %>% + purrr::pluck("homeTeam") %>% + dplyr::rename_with(~paste0("home_", .x)) + ) %>% janitor::clean_names() colnames(games) <- gsub('team_team', 'team', colnames(games)) games$game_id <- unlist(purrr::map(games$game_id,function(x){ From d571d9a38a5619cd560500628d6348f3a5be4d6c Mon Sep 17 00:00:00 2001 From: Ross Drucker Date: Sat, 7 Oct 2023 17:33:32 -0500 Subject: [PATCH 2/4] Adding back ... argument to request_with_proxy() call; was accidentally deleted while testing --- R/nba_stats_scoreboard.R | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/R/nba_stats_scoreboard.R b/R/nba_stats_scoreboard.R index c38bf338..a2321862 100644 --- a/R/nba_stats_scoreboard.R +++ b/R/nba_stats_scoreboard.R @@ -91,7 +91,7 @@ nba_schedule <- function( tryCatch( expr = { - resp <- request_with_proxy(url = full_url, params = params) + resp <- request_with_proxy(url = full_url, params = params, ...) league_sched <- resp %>% purrr::pluck("leagueSchedule") From 009654cd25ace721fa96e11f71108fa7690fa236 Mon Sep 17 00:00:00 2001 From: Ross Drucker Date: Wed, 11 Oct 2023 14:16:51 -0500 Subject: [PATCH 3/4] Reordering home and away teams and removing the homeTeam and awayTeam columns (plucked and combined with bind_cols() so no data lost) --- R/nba_stats_scoreboard.R | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/R/nba_stats_scoreboard.R b/R/nba_stats_scoreboard.R index a2321862..8fa7e68e 100644 --- a/R/nba_stats_scoreboard.R +++ b/R/nba_stats_scoreboard.R @@ -103,16 +103,17 @@ nba_schedule <- function( league_sched %>% purrr::pluck("gameDates") %>% tidyr::unnest("games") %>% - purrr::pluck("awayTeam") %>% - dplyr::rename_with(~paste0("away_", .x)) + purrr::pluck("homeTeam") %>% + dplyr::rename_with(~paste0("home_team_", .x)) ) %>% dplyr::bind_cols( league_sched %>% purrr::pluck("gameDates") %>% tidyr::unnest("games") %>% - purrr::pluck("homeTeam") %>% - dplyr::rename_with(~paste0("home_", .x)) + purrr::pluck("awayTeam") %>% + dplyr::rename_with(~paste0("away_team_", .x)) ) %>% + select(-homeTeam, -awayTeam) %>% janitor::clean_names() colnames(games) <- gsub('team_team', 'team', colnames(games)) games$game_id <- unlist(purrr::map(games$game_id,function(x){ @@ -129,7 +130,7 @@ nba_schedule <- function( .data$season_type_id == 3 ~ "All-Star", .data$season_type_id == 4 ~ "Playoffs", .data$season_type_id == 5 ~ "Play-In Game"), - game_date = lubridate::mdy(substring(.data$game_date,1,10))) + game_date = lubridate::mdy(substring(.data$game_date, 1, 10))) }, error = function(e) { From 04c1f022a4d4e3eae8116fc9ac9d744bbb272bce Mon Sep 17 00:00:00 2001 From: Ross Drucker Date: Wed, 11 Oct 2023 14:17:59 -0500 Subject: [PATCH 4/4] Adding season_type_id and season_type_description columns since these are added by hoopR in nba_schedule() function --- tests/testthat/test-nba_schedule.R | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/tests/testthat/test-nba_schedule.R b/tests/testthat/test-nba_schedule.R index e9d73f44..c0905905 100644 --- a/tests/testthat/test-nba_schedule.R +++ b/tests/testthat/test-nba_schedule.R @@ -51,7 +51,9 @@ test_that("NBA Schedule", { "away_team_score", "away_team_seed", "season", - "league_id" + "league_id", + "season_type_id", + "season_type_description" ) expect_equal(sort(colnames(x)), sort(cols_x1))