Skip to content

Commit

Permalink
Tidy API & Other Cleanup
Browse files Browse the repository at this point in the history
Changed API to a much tidier one -- cleanedup a bunch of other crap
  • Loading branch information
abresler committed Oct 25, 2018
1 parent 658b57a commit ccaac93
Show file tree
Hide file tree
Showing 185 changed files with 14,748 additions and 1,602 deletions.
3 changes: 2 additions & 1 deletion DESCRIPTION
@@ -1,7 +1,7 @@
Package: nbastatR
Type: Package
Title: R's interface to NBA data
Version: 0.1.11101
Version: 0.1.12
Authors@R: c(person("Alex", "Bresler", email = "abresler@asbcllc.com", role = c("aut", "cre")))
Description: NBA data tools for R
License: MIT + file LICENSE
Expand All @@ -18,6 +18,7 @@ Imports:
curl,
httr,
lubridate,
memoise,
readr,
furrr,
future
Expand Down
116 changes: 57 additions & 59 deletions NAMESPACE
@@ -1,84 +1,82 @@
# Generated by roxygen2: do not edit by hand

export(agents_players)
export(all_nba_teams)
export(all_star_games)
export(assign_bref_data)
export(assign_nba_players)
export(assign_nba_teams)
export(bref_all_star_game_scores)
export(beyond_the_numbers)
export(box_scores)
export(bref_awards)
export(bref_awards_votes)
export(bref_bios)
export(bref_injuries)
export(bref_players_seasons)
export(bref_teams_seasons)
export(bref_players_stats)
export(bref_teams_stats)
export(coaching_staffs)
export(current_schedule)
export(current_standings)
export(days_scores)
export(dictionary_bref_awards)
export(dictionary_bref_coaches)
export(dictionary_bref_players)
export(dictionary_bref_teams)
export(dictionary_nba_names)
export(draft_combines)
export(drafts)
export(fanduel_summary)
export(franchise_leaders)
export(game_logs)
export(gather_data)
export(get_agents_players)
export(get_all_nba_teams_salaries)
export(get_beyond_the_numbers_articles)
export(get_bref_players_bios)
export(get_coaching_staffs)
export(get_current_standings)
export(get_days_nba_scores)
export(get_drafts)
export(get_game_logs)
export(get_games_box_scores)
export(get_games_fanduel_summary)
export(get_games_pbp_win_probablity)
export(get_games_play_by_play)
export(get_hoops_hype_teams_salary_summary)
export(get_nba_current_season_schedule)
export(get_nba_franchise_history)
export(get_nba_player_injuries)
export(get_nba_players)
export(get_nba_players_ids)
export(get_nba_pst_transaction)
export(get_nba_stats_api_items)
export(get_nba_team_salaries)
export(get_nba_teams)
export(get_nba_teams_ids)
export(get_nba_teams_seasons)
export(get_nba_transactions)
export(get_nbadraftnet_mock_drafts)
export(get_players_agents)
export(get_players_awards)
export(get_players_bios)
export(get_players_career_stats)
export(get_players_profiles)
export(get_players_roto_wire_news)
export(get_players_tables_data)
export(get_seasons_metrics_league_leaders)
export(get_seasons_players)
export(get_seasons_playoff_picture)
export(get_seasons_rosters)
export(get_seasons_schedule)
export(get_seasons_standings)
export(get_seasons_teams_coaches)
export(get_seasons_teams_rosters)
export(get_synergy_categories_stats)
export(get_team_coaches)
export(get_team_season_roster)
export(get_teams_details)
export(get_teams_franchise_leaders)
export(get_teams_hoopshype_salaries)
export(get_teams_players_seasons_summary_stats)
export(get_teams_roto_wire_news)
export(get_teams_seasons_info)
export(get_teams_seasons_rankings)
export(get_teams_seasons_shots)
export(get_teams_tables_data)
export(get_teams_year_by_year_stats)
export(get_years_draft_combines)
export(hoops_hype_salary_summary)
export(hoopshype_salaries)
export(metrics_leaders)
export(nba_franchise_history)
export(nba_injuries)
export(nba_insider_salaries)
export(nba_player_ids)
export(nba_players)
export(nba_stats_api_items)
export(nba_teams)
export(nba_teams_ids)
export(nba_teams_seasons)
export(nbadraftnet_mock_drafts)
export(nbastats_api_parameters)
export(play_by_play)
export(player_profiles)
export(players_agents)
export(players_awards)
export(players_bios)
export(players_careers)
export(players_rotowire)
export(players_tables)
export(playoff_pictures)
export(pst_transaction)
export(scale_per_minute)
export(seasons_players)
export(seasons_rosters)
export(seasons_schedule)
export(sl_players)
export(sl_teams)
export(spread_data)
export(standings)
export(summarise_per_minute)
export(synergy)
export(team_season_roster)
export(teams_annual_stats)
export(teams_coaches)
export(teams_details)
export(teams_players_stats)
export(teams_rankings)
export(teams_rosters)
export(teams_rotowire)
export(teams_seasons_info)
export(teams_shots)
export(teams_tables)
export(transactions)
export(widen_bref_data)
export(win_probability)
import(curl)
import(dplyr)
import(furrr)
Expand Down
47 changes: 15 additions & 32 deletions R/basketball_insider_functions.R
@@ -1,4 +1,4 @@
get_basketball_insider_team_ids <- function() {
.get_basketball_insider_team_ids <- function() {
data <-
data_frame(
nameTeam = c(
Expand Down Expand Up @@ -142,32 +142,15 @@ get_basketball_insider_team_ids <- function() {
data
}

#' NBA team salary
#'
#' Returns information about an NBA teams salary
#'
#' @param team_name NBA team name
#' @param team_slug NBA team slug
#' @param assume_player_opt_out if `TRUE` assumes NBA player opts out
#' @param assume_team_doesnt_exercise if `TRUE` assumes teams don't exercise team option
#' @param spread_data if `TRUE` returns wide data
#' @param return_message if `TRUE` returns a message
#'
#' @return a `data_frame`
#' @export
#' @import dplyr rvest stringr purrr tidyr readr
#' @family salaries
#' @examples
#' get_nba_team_salaries(team_name = "Brooklyn Nets")
get_nba_team_salaries <-
function(team_name = "Brooklyn Nets",
nba_team_salaries <-
memoise::memoise(function(team_name = "Brooklyn Nets",
team_slug = NA,
assume_player_opt_out = T,
assume_team_doesnt_exercise = T,
spread_data = FALSE,
return_wide = FALSE,
return_message = T) {
team_name_df <-
get_basketball_insider_team_ids()
.get_basketball_insider_team_ids()

teams <-
team_name_df$nameTeam %>%
Expand Down Expand Up @@ -500,35 +483,35 @@ get_nba_team_salaries <-
slice(1) %>%
ungroup()

if (spread_data) {
if (return_wide) {
all_data <-
all_data %>%
select(nameTeam, namePlayer, slugSeason, value) %>%
spread(slugSeason, value)
}
all_data
}
})

#' NBA team salaries
#'
#' Gets information about NBA teams salaries
#'
#' @param assume_player_opt_out if `TRUE` assumes player opts out of a player option
#' @param assume_team_doesnt_exercise if `TRUE` assumes teams do not exercise team option
#' @param spread_data if `TRUE` spreads data
#' @param return_wide if `TRUE` spreads data
#' @param return_message if `TRUE` returns a message
#'
#' @return a `data_frame`
#' @export
#' @family salaries
#' @import dplyr rvest stringr purrr tidyr readr
#' @examples
#' get_all_nba_teams_salaries(assume_player_opt_out = T, assume_team_doesnt_exercise = T, return_message = TRUE)
#' nba_insider_salaries(assume_player_opt_out = T, assume_team_doesnt_exercise = T, return_message = TRUE)

get_all_nba_teams_salaries <-
nba_insider_salaries <-
function(assume_player_opt_out = T,
assume_team_doesnt_exercise = T,
spread_data = F,
return_wide = F,
return_message = T) {
apo <-
assume_player_opt_out
Expand Down Expand Up @@ -569,18 +552,18 @@ get_all_nba_teams_salaries <-
"Washington Wizards"
)

get_nba_team_salaries_safe <-
purrr::possibly(get_nba_team_salaries, data_frame())
nba_team_salaries_safe <-
purrr::possibly(nba_team_salaries, data_frame())

all_salaries <-
all_teams %>%
future_map_dfr(
function(x)
get_nba_team_salaries_safe(
nba_team_salaries_safe(
team_name = x,
assume_player_opt_out = apo,
assume_team_doesnt_exercise = atde,
spread_data = spread_data,
return_wide = return_wide,
return_message = return_message
)
)
Expand Down
16 changes: 8 additions & 8 deletions R/box_scores.R
@@ -1,7 +1,7 @@
# slugs -------------------------------------------------------------------

dictionary_boxscore_slugs <-
function(){
.dictionary_boxscore_slugs <-
memoise::memoise(function(){
data_frame(nameSlug = c("traditional", "advanced", "scoring","misc", "usage", "four factors",
"hustle", "tracking", "winprob", "defense", "matchups"),
slugNBA = c("boxscoretraditionalv2","boxscoreadvancedv2", "boxscorescoringv2", "boxscoremiscv2",
Expand All @@ -11,11 +11,11 @@ dictionary_boxscore_slugs <-
slugBase = c("traditional", "advanced", "scoring", "misc", "usage", "fourfactors",
"hustlestats", "playertrack", "winprob", "defense", "matchups")) %>%
mutate(typeStatsCall = "boxscore")
}
})


.get_box_score_type <-
function(game_id = 21700865,
memoise::memoise(function(game_id = 21700865,
league = "NBA",
result_type = "player",
boxscore = "tracking",
Expand All @@ -42,7 +42,7 @@ dictionary_boxscore_slugs <-
}

df_box_slugs <-
dictionary_boxscore_slugs()
.dictionary_boxscore_slugs()

box_score_slug <-
df_box_slugs %>%
Expand Down Expand Up @@ -324,7 +324,7 @@ dictionary_boxscore_slugs <-
select(typeBoxScore, typeResult, everything())
gc()
data
}
})

#' NBA box scores
#'
Expand Down Expand Up @@ -358,9 +358,9 @@ dictionary_boxscore_slugs <-
#' @import dplyr curl stringr lubridate readr magrittr tidyr httr purrr jsonlite
#' @importFrom glue glue
#' @examples
#' get_games_box_scores(game_ids = c(21700002, 21700003), box_score_types = c("Traditional", "Advanced", "Scoring", "Misc", "Usage", "Four Factors", "Tracking"), result_types = c("player", "team"), join_data = TRUE, assign_to_environment = TRUE, return_message = TRUE)
#' box_scores(game_ids = c(21700002, 21700003), box_score_types = c("Traditional", "Advanced", "Scoring", "Misc", "Usage", "Four Factors", "Tracking"), result_types = c("player", "team"), join_data = TRUE, assign_to_environment = TRUE, return_message = TRUE)

get_games_box_scores <-
box_scores <-
function(game_ids = NULL,
league = "NBA",
box_score_types = c("Traditional", "Advanced", "Scoring","Misc", "Usage", "Four Factors",
Expand Down
17 changes: 8 additions & 9 deletions R/bref.R
Expand Up @@ -629,7 +629,7 @@ widen_bref_data <-

df_table <-
df_table %>%
resolve.players(site = "bref")
.resolve.players(site = "bref")

if (!table == "Advanced") {
df_table <-
Expand Down Expand Up @@ -1344,8 +1344,8 @@ all_nba_teams <-
#' @export
#' @import curl dplyr tidyr httr xml2 rvest tidyr stringr purrr readr
#' @examples
#' bref_players_seasons(seasons = 2017:2018, tables = c("advanced", "totals"))
bref_players_seasons <-
#' bref_players_stats(seasons = 2017:2018, tables = c("advanced", "totals"))
bref_players_stats <-
function(seasons = 2018,
tables = c('advanced', 'totals'),
include_all_nba = F,
Expand Down Expand Up @@ -1764,8 +1764,7 @@ bref_players_seasons <-

all_data <-
seq_along(xml_tables) %>%
map_dfr(function(x) {
x %>% message()
future_map_dfr(function(x) {
table_id <-
xml_tables[x] %>%
html_attr("id")
Expand Down Expand Up @@ -2062,8 +2061,8 @@ bref_players_seasons <-
#' @export
#' @import purrr dplyr curl stringr tidyr readr glue rvest
#' @examples
#' bref_teams_seasons(seasons = 2017:2018)
bref_teams_seasons <-
#' bref_teams_stats(seasons = 2017:2018)
bref_teams_stats <-
function(seasons = 1950:2018,
return_message = TRUE,
assign_to_environment = TRUE,
Expand Down Expand Up @@ -2125,10 +2124,10 @@ bref_teams_seasons <-
#' library(dplyr)
#' library(nbastatR)
#'df_asg <-
#' bref_all_star_game_scores()
#' all_star_games()
#'df_asg %>% glimpse()
#'df_asg %>% count(namePlayerMVP, sort = T)
bref_all_star_game_scores <-
all_star_games <-
function(include_aba = T,
return_message = T) {
page <-
Expand Down

0 comments on commit ccaac93

Please sign in to comment.