R/basic_player_info.R

#' @title Get Basic Player Info
#' @description gets basic player info, position, etc
#' @keywords nba.com api
#' @importFrom magrittr %>%
#' @export get_basic_player_info
#' @examples
#' get_basic_player_info(id = '77449')
#' get_basic_player_info(id = c('600012','600013'))

get_basic_player_info <- function(id) {

  base_url <- 'stats.nba.com/stats/commonplayerinfo/?'

  player_info_url <- paste0(base_url,'PlayerID=', id[1])

  player_info_json <-
    curl::curl(player_info_url) %>%
    jsonlite::fromJSON()

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

  if (length (id) > 1) {

    for (i in 2:length(id)) {

      player_info_url <- paste0(base_url, 'PlayerID=', id[i])

      player_info_json <-
        curl::curl(player_info_url) %>%
        jsonlite::fromJSON()

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

      player_info_df <- player_info_df %>%
        bind_rows(tmp_df)

      Sys.sleep(runif(1,0.5,2))

      print (id[i])
    }

  }

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