R/get_player_ids.R

#' @title Scrape Player IDs From NBA.com
#' @description scrapes all players IDS from nba.com API
#' @keywords NBA stat.nba.com
#' @importFrom magrittr %>%
#' @export
#' @examples
#' get_player_ids()


get_player_ids <- function(baseurl='https://stats.nba.com/stats/commonallplayers/?', league_id = '00',
                        season = '2018-19',curr_season = 0, save=T) {
  url <- paste0(baseurl,
                'LeagueID=',league_id,
                '&Season=', season,
                '&IsOnlyCurrentSeason=', curr_season)

  player_info <-
    curl::curl(url) %>%
    jsonlite::fromJSON(simplifyVector = T)

  player_info_df <- data.frame(player_info$resultSets$rowSet[[1]], stringsAsFactors = F)
  names(player_info_df) = tolower(player_info$resultSets$headers[[1]])

  player_info_df <- player_info_df %>%
    dplyr::select(person_id, display_last_comma_first, display_first_last, from_year, to_year) %>%
    dplyr::rename(player_id = person_id,
           player_name_comma = display_last_comma_first,
           player_name = display_first_last,
           init_year = from_year,
           final_year = to_year) %>%
    dplyr::mutate(player_id = as.numeric(player_id),
                 init_year = as.numeric(init_year),
                 final_year = as.numeric(final_year),
                 player_name_comma = tolower(player_name_comma),
                 player_name = tolower(player_name))

  if (save==T) {
    utils::write.csv(player_info_df, file = 'data-raw/player_ids.csv', row.names = FALSE)
  }

  return(player_info_df)
}
emilykuehler/basketballstatsR documentation built on May 31, 2019, 10:01 a.m.