Giter Club home page Giter Club logo

nbastatr's Introduction

nbastatR

Installation

devtools::install_github("abresler/nbastatR")

nbastatR

A package to help you master the NBA data universe in R.

Wrappers

  • NBA Stats API
  • Basketball-Reference
  • HoopsHype
  • nbadraft.net
  • realgm
  • Basketball Insiders

Parallel Computing

This package now supports parallel computing for all iterative functions. In order to utilize this just run `future::plan with your selected method.

For example to use muiltiprocess.

library(nbastatR)
library(future)
plan(multiprocess) 
game_logs(seasons = 2010:2019)

nbastatr's People

Contributors

abresler avatar batpigandme avatar bischrob avatar bmacgtpm avatar engineerchange avatar rtelmore avatar saadaslam avatar sravanpannala avatar worf2340 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

nbastatr's Issues

players_tables function issues

hi ,
I try to use the function players_tables with the exemple but i have errors when i run it :
Assigning NBA player dictionary to df_dict_nba_players to your environment Expected 2 pieces. Missing pieces filled with NAin 4 rows [1758, 3250, 4451, 4457].Acquiring Joe Harris 2019 Regular Season Base year over year PerGame data Acquiring Caris LeVert 2019 Regular Season Base year over year PerGame data Acquiring Joe Harris 2019 Regular Season Base passes PerGame data Acquiring Caris LeVert 2019 Regular Season Base passes PerGame data Acquiring Joe Harris 2019 Regular Season Base game splits PerGame data Acquiring Caris LeVert 2019 Regular Season Base game splits PerGame data Acquiring Joe Harris 2019 Regular Season Advanced year over year PerGame data Missing sp_work_OFF_RATING in dictionary Missing sp_work_DEF_RATING in dictionary Missing sp_work_NET_RATING in dictionary Missing E_TOV_PCT in dictionary Missing PACE_PER40 in dictionary Missing sp_work_PACE in dictionary Missing E_OFF_RATING_RANK in dictionary Missing sp_work_OFF_RATING_RANK in dictionary Missing E_DEF_RATING_RANK in dictionary Missing sp_work_DEF_RATING_RANK in dictionary Missing E_NET_RATING_RANK in dictionary Missing sp_work_NET_RATING_RANK in dictionary Missing E_TOV_PCT_RANK in dictionary Missing E_USG_PCT_RANK in dictionary Missing E_PACE_RANK in dictionary Missing sp_work_PACE_RANK in dictionary Missing sp_work_OFF_RATING in dictionary Missing sp_work_DEF_RATING in dictionary Missing sp_work_NET_RATING in dictionary Missing E_TOV_PCT in dictionary Missing PACE_PER40 in dictionary Missing sp_work_PACE in dictionary Missing E_OFF_RATING_RANK in dictionary Missing sp_work_OFF_RATING_RANK in dictionary Missing E_DEF_RATING_RANK in dictionary Missing sp_work_DEF_RATING_RANK in dictionary Missing E_NET_RATING_RANK in dictionary Missing sp_work_NET_RATING_RANK in dictionary Missing E_TOV_PCT_RANK in dictionary Missing E_USG_PCT_RANK in dictionary Missing E_PACE_RANK in dictionary Missing sp_work_PACE_RANK in dictionary Acquiring Caris LeVert 2019 Regular Season Advanced year over year PerGame data Missing sp_work_OFF_RATING in dictionary Missing sp_work_DEF_RATING in dictionary Missing sp_work_NET_RATING in dictionary Missing E_TOV_PCT in dictionary Missing PACE_PER40 in dictionary Missing sp_work_PACE in dictionary Missing E_OFF_RATING_RANK in dictionary Missing sp_work_OFF_RATING_RANK in dictionary Missing E_DEF_RATING_RANK in dictionary Missing sp_work_DEF_RATING_RANK in dictionary Missing E_NET_RATING_RANK in dictionary Missing sp_work_NET_RATING_RANK in dictionary Missing E_TOV_PCT_RANK in dictionary Missing E_USG_PCT_RANK in dictionary Missing E_PACE_RANK in dictionary Missing sp_work_PACE_RANK in dictionary Missing sp_work_OFF_RATING in dictionary Missing sp_work_DEF_RATING in dictionary Missing sp_work_NET_RATING in dictionary Missing E_TOV_PCT in dictionary Missing PACE_PER40 in dictionary Missing sp_work_PACE in dictionary Missing E_OFF_RATING_RANK in dictionary Missing sp_work_OFF_RATING_RANK in dictionary Missing E_DEF_RATING_RANK in dictionary Missing sp_work_DEF_RATING_RANK in dictionary Missing E_NET_RATING_RANK in dictionary Missing sp_work_NET_RATING_RANK in dictionary Missing E_TOV_PCT_RANK in dictionary Missing E_USG_PCT_RANK in dictionary Missing E_PACE_RANK in dictionary Missing sp_work_PACE_RANK in dictionary Acquiring Joe Harris 2019 Regular Season Advanced passes PerGame data Acquiring Caris LeVert 2019 Regular Season Advanced passes PerGame data Acquiring Joe Harris 2019 Regular Season Advanced game splits PerGame data Missing sp_work_OFF_RATING in dictionary Missing sp_work_DEF_RATING in dictionary Missing sp_work_NET_RATING in dictionary Missing E_TOV_PCT in dictionary Missing PACE_PER40 in dictionary Missing sp_work_PACE in dictionary Missing E_OFF_RATING_RANK in dictionary Missing sp_work_OFF_RATING_RANK in dictionary Missing E_DEF_RATING_RANK in dictionary Missing sp_work_DEF_RATING_RANK in dictionary Missing E_NET_RATING_RANK in dictionary Missing sp_work_NET_RATING_RANK in dictionary Missing E_TOV_PCT_RANK in dictionary Missing E_USG_PCT_RANK in dictionary Missing E_PACE_RANK in dictionary Missing sp_work_PACE_RANK in dictionary Missing sp_work_OFF_RATING in dictionary Missing sp_work_DEF_RATING in dictionary Missing sp_work_NET_RATING in dictionary Missing E_TOV_PCT in dictionary Missing PACE_PER40 in dictionary Missing sp_work_PACE in dictionary Missing E_OFF_RATING_RANK in dictionary Missing sp_work_OFF_RATING_RANK in dictionary Missing E_DEF_RATING_RANK in dictionary Missing sp_work_DEF_RATING_RANK in dictionary Missing E_NET_RATING_RANK in dictionary Missing sp_work_NET_RATING_RANK in dictionary Missing E_TOV_PCT_RANK in dictionary Missing E_USG_PCT_RANK in dictionary Missing E_PACE_RANK in dictionary Missing sp_work_PACE_RANK in dictionary Acquiring Caris LeVert 2019 Regular Season Advanced game splits PerGame data Missing sp_work_OFF_RATING in dictionary Missing sp_work_DEF_RATING in dictionary Missing sp_work_NET_RATING in dictionary Missing E_TOV_PCT in dictionary Missing PACE_PER40 in dictionary Missing sp_work_PACE in dictionary Missing E_OFF_RATING_RANK in dictionary Missing sp_work_OFF_RATING_RANK in dictionary Missing E_DEF_RATING_RANK in dictionary Missing sp_work_DEF_RATING_RANK in dictionary Missing E_NET_RATING_RANK in dictionary Missing sp_work_NET_RATING_RANK in dictionary Missing E_TOV_PCT_RANK in dictionary Missing E_USG_PCT_RANK in dictionary Missing E_PACE_RANK in dictionary Missing sp_work_PACE_RANK in dictionary Missing sp_work_OFF_RATING in dictionary Missing sp_work_DEF_RATING in dictionary Missing sp_work_NET_RATING in dictionary Missing E_TOV_PCT in dictionary Missing PACE_PER40 in dictionary Missing sp_work_PACE in dictionary Missing E_OFF_RATING_RANK in dictionary Missing sp_work_OFF_RATING_RANK in dictionary Missing E_DEF_RATING_RANK in dictionary Missing sp_work_DEF_RATING_RANK in dictionary Missing E_NET_RATING_RANK in dictionary Missing sp_work_NET_RATING_RANK in dictionary Missing E_TOV_PCT_RANK in dictionary Missing E_USG_PCT_RANK in dictionary Missing E_PACE_RANK in dictionary Missing sp_work_PACE_RANK in dictionary Acquiring Joe Harris 2019 Regular Season Base year over year Totals data Acquiring Caris LeVert 2019 Regular Season Base year over year Totals data Acquiring Joe Harris 2019 Regular Season Base passes Totals data Acquiring Caris LeVert 2019 Regular Season Base passes Totals data Acquiring Joe Harris 2019 Regular Season Base game splits Totals data Acquiring Caris LeVert 2019 Regular Season Base game splits Totals data Acquiring Joe Harris 2019 Regular Season Advanced year over year Totals data Missing sp_work_OFF_RATING in dictionary Missing sp_work_DEF_RATING in dictionary Missing sp_work_NET_RATING in dictionary Missing E_TOV_PCT in dictionary Missing PACE_PER40 in dictionary Missing sp_work_PACE in dictionary Missing E_OFF_RATING_RANK in dictionary Missing sp_work_OFF_RATING_RANK in dictionary Missing E_DEF_RATING_RANK in dictionary Missing sp_work_DEF_RATING_RANK in dictionary Missing E_NET_RATING_RANK in dictionary Missing sp_work_NET_RATING_RANK in dictionary Missing E_TOV_PCT_RANK in dictionary Missing E_USG_PCT_RANK in dictionary Missing E_PACE_RANK in dictionary Missing sp_work_PACE_RANK in dictionary Missing sp_work_OFF_RATING in dictionary Missing sp_work_DEF_RATING in dictionary Missing sp_work_NET_RATING in dictionary Missing E_TOV_PCT in dictionary Missing PACE_PER40 in dictionary Missing sp_work_PACE in dictionary Missing E_OFF_RATING_RANK in dictionary Missing sp_work_OFF_RATING_RANK in dictionary Missing E_DEF_RATING_RANK in dictionary Missing sp_work_DEF_RATING_RANK in dictionary Missing E_NET_RATING_RANK in dictionary Missing sp_work_NET_RATING_RANK in dictionary Missing E_TOV_PCT_RANK in dictionary Missing E_USG_PCT_RANK in dictionary Missing E_PACE_RANK in dictionary Missing sp_work_PACE_RANK in dictionary Acquiring Caris LeVert 2019 Regular Season Advanced year over year Totals data Missing sp_work_OFF_RATING in dictionary Missing sp_work_DEF_RATING in dictionary Missing sp_work_NET_RATING in dictionary Missing E_TOV_PCT in dictionary Missing PACE_PER40 in dictionary Missing sp_work_PACE in dictionary Missing E_OFF_RATING_RANK in dictionary Missing sp_work_OFF_RATING_RANK in dictionary Missing E_DEF_RATING_RANK in dictionary Missing sp_work_DEF_RATING_RANK in dictionary Missing E_NET_RATING_RANK in dictionary Missing sp_work_NET_RATING_RANK in dictionary Missing E_TOV_PCT_RANK in dictionary Missing E_USG_PCT_RANK in dictionary Missing E_PACE_RANK in dictionary Missing sp_work_PACE_RANK in dictionary Missing sp_work_OFF_RATING in dictionary Missing sp_work_DEF_RATING in dictionary Missing sp_work_NET_RATING in dictionary Missing E_TOV_PCT in dictionary Missing PACE_PER40 in dictionary Missing sp_work_PACE in dictionary Missing E_OFF_RATING_RANK in dictionary Missing sp_work_OFF_RATING_RANK in dictionary Missing E_DEF_RATING_RANK in dictionary Missing sp_work_DEF_RATING_RANK in dictionary Missing E_NET_RATING_RANK in dictionary Missing sp_work_NET_RATING_RANK in dictionary Missing E_TOV_PCT_RANK in dictionary Missing E_USG_PCT_RANK in dictionary Missing E_PACE_RANK in dictionary Missing sp_work_PACE_RANK in dictionary Acquiring Joe Harris 2019 Regular Season Advanced passes Totals data Acquiring Caris LeVert 2019 Regular Season Advanced passes Totals data Acquiring Joe Harris 2019 Regular Season Advanced game splits Totals data Missing sp_work_OFF_RATING in dictionary Missing sp_work_DEF_RATING in dictionary Missing sp_work_NET_RATING in dictionary Missing E_TOV_PCT in dictionary Missing PACE_PER40 in dictionary Missing sp_work_PACE in dictionary Missing E_OFF_RATING_RANK in dictionary Missing sp_work_OFF_RATING_RANK in dictionary Missing E_DEF_RATING_RANK in dictionary Missing sp_work_DEF_RATING_RANK in dictionary Missing E_NET_RATING_RANK in dictionary Missing sp_work_NET_RATING_RANK in dictionary Missing E_TOV_PCT_RANK in dictionary Missing E_USG_PCT_RANK in dictionary Missing E_PACE_RANK in dictionary Missing sp_work_PACE_RANK in dictionary Missing sp_work_OFF_RATING in dictionary Missing sp_work_DEF_RATING in dictionary Missing sp_work_NET_RATING in dictionary Missing E_TOV_PCT in dictionary Missing PACE_PER40 in dictionary Missing sp_work_PACE in dictionary Missing E_OFF_RATING_RANK in dictionary Missing sp_work_OFF_RATING_RANK in dictionary Missing E_DEF_RATING_RANK in dictionary Missing sp_work_DEF_RATING_RANK in dictionary Missing E_NET_RATING_RANK in dictionary Missing sp_work_NET_RATING_RANK in dictionary Missing E_TOV_PCT_RANK in dictionary Missing E_USG_PCT_RANK in dictionary Missing E_PACE_RANK in dictionary Missing sp_work_PACE_RANK in dictionary Acquiring Caris LeVert 2019 Regular Season Advanced game splits Totals data Missing sp_work_OFF_RATING in dictionary Missing sp_work_DEF_RATING in dictionary Missing sp_work_NET_RATING in dictionary Missing E_TOV_PCT in dictionary Missing PACE_PER40 in dictionary Missing sp_work_PACE in dictionary Missing E_OFF_RATING_RANK in dictionary Missing sp_work_OFF_RATING_RANK in dictionary Missing E_DEF_RATING_RANK in dictionary Missing sp_work_DEF_RATING_RANK in dictionary Missing E_NET_RATING_RANK in dictionary Missing sp_work_NET_RATING_RANK in dictionary Missing E_TOV_PCT_RANK in dictionary Missing E_USG_PCT_RANK in dictionary Missing E_PACE_RANK in dictionary Missing sp_work_PACE_RANK in dictionary Missing sp_work_OFF_RATING in dictionary Missing sp_work_DEF_RATING in dictionary Missing sp_work_NET_RATING in dictionary Missing E_TOV_PCT in dictionary Missing PACE_PER40 in dictionary Missing sp_work_PACE in dictionary Missing E_OFF_RATING_RANK in dictionary Missing sp_work_OFF_RATING_RANK in dictionary Missing E_DEF_RATING_RANK in dictionary Missing sp_work_DEF_RATING_RANK in dictionary Missing E_NET_RATING_RANK in dictionary Missing sp_work_NET_RATING_RANK in dictionary Missing E_TOV_PCT_RANK in dictionary Missing E_USG_PCT_RANK in dictionary Missing E_PACE_RANK in dictionary Missing sp_work_PACE_RANK in dictionary NAs introduits lors de la conversion automatiqueNAs introduits lors de la conversion automatiqueNAs introduits lors de la conversion automatiqueUnknown columns:orderSort, namePlayerLastFirst, dateGameLastPlayedUnknown columns: orderSort, idLeague, namePlayerLastFirstNAs introduits lors de la conversion automatiqueNAs introduits lors de la conversion automatiqueNAs introduits lors de la conversion automatiqueUnknown columns: orderSort, namePlayerLastFirst, dateGameLastPlayedUnknown columns: orderSort, idLeague, namePlayerLastFirstJoining, by = c("typeSeason", "modeSearch", "typeMeasure", "numberTable", "slugSeason")Unknown columns: idLeagueUnknown columns: resultGame, locationGame, nameSeasonMonth, segmentSeason, rangeDaysRestNAs introduits lors de la conversion automatiqueNAs introduits lors de la conversion automatiqueNAs introduits lors de la conversion automatiqueUnknown columns: orderSort, namePlayerLastFirst, dateGameLastPlayedUnknown columns: orderSort, idLeague, namePlayerLastFirstNAs introduits lors de la conversion automatiqueNAs introduits lors de la conversion automatiqueNAs introduits lors de la conversion automatiqueUnknown columns: orderSort, namePlayerLastFirst, dateGameLastPlayedUnknown columns: orderSort, idLeague, namePlayerLastFirstJoining, by = c("typeSeason", "modeSearch", "typeMeasure", "numberTable", "slugSeason")Unknown columns: idLeagueUnknown columns: resultGame, locationGame, nameSeasonMonth, segmentSeason, rangeDaysRestUnknown columns: orderSort, namePlayerLastFirst, dateGameLastPlayedUnknown columns: typeMeasureJoining, by = "idPlayerPasserPassTo"Unknown columns: orderSort, idLeague, dateGameLastPlayedJoining, by = c("typeSeason", "modeSearch", "numberTable", "slugSeason", "idPlayer", "idTeam")Unknown columns: idLeagueUnknown columns: resultGame, locationGame, nameSeasonMonth, segmentSeason, rangeDaysRestUnknown columns: orderSort, namePlayerLastFirst, dateGameLastPlayedUnknown columns: typeMeasureJoining, by = "idPlayerPasserPassTo"Unknown columns: orderSort, idLeague, dateGameLastPlayedJoining, by = c("typeSeason", "modeSearch", "numberTable", "slugSeason", "idPlayer", "idTeam")Unknown columns: idLeagueUnknown columns: resultGame, locationGame, nameSeasonMonth, segmentSeason, rangeDaysRestNAs introduits lors de la conversion automatiqueNAs introduits lors de la conversion automatiqueNAs introduits lors de la conversion automatiqueUnknown columns: orderSort, namePlayerLastFirst, dateGameLastPlayedUnknown columns: orderSort, idLeague, namePlayerLastFirst, dateGameLastPlayedNAs introduits lors de la conversion automatiqueNAs introduits lors de la conversion automatiqueNAs introduits lors de la conversion automatiqueUnknown columns: orderSort, namePlayerLastFirst, dateGameLastPlayedUnknown columns: orderSort, idLeague, namePlayerLastFirst, dateGameLastPlayedJoining, by = c("typeSeason", "modeSearch", "typeMeasure", "numberTable", "slugSeason")Unknown columns: idLeagueUnknown columns: resultGame, locationGame, nameSeasonMonth, segmentSeason, rangeDaysRestNAs introduits lors de la conversion automatiqueNAs introduits lors de la conversion automatiqueNAs introduits lors de la conversion automatiqueUnknown columns: orderSort, namePlayerLastFirst, dateGameLastPlayedUnknown columns: orderSort, idLeague, namePlayerLastFirst, dateGameLastPlayedNAs introduits lors de la conversion automatiqueNAs introduits lors de la conversion automatiqueNAs introduits lors de la conversion automatiqueUnknown columns: orderSort, namePlayerLastFirst, dateGameLastPlayedUnknown columns: orderSort, idLeague, namePlayerLastFirst, dateGameLastPlayedJoining, by = c("typeSeason", "modeSearch", "typeMeasure", "numberTable", "slugSeason")Unknown columns: idLeagueUnknown columns: resultGame, locationGame, nameSeasonMonth, segmentSeason, rangeDaysRestNAs introduits lors de la conversion automatiqueNAs introduits lors de la conversion automatiqueNAs introduits lors de la conversion automatiqueUnknown columns: orderSort, namePlayerLastFirst, dateGameLastPlayedUnknown columns: orderSort, idLeague, namePlayerLastFirstNAs introduits lors de la conversion automatiqueNAs introduits lors de la conversion automatiqueNAs introduits lors de la conversion automatiqueUnknown columns: orderSort, namePlayerLastFirst, dateGameLastPlayedUnknown columns: orderSort, idLeague, namePlayerLastFirstJoining, by = c("typeSeason", "modeSearch", "typeMeasure", "numberTable", "slugSeason")Unknown columns: idLeagueUnknown columns: resultGame, locationGame, nameSeasonMonth, segmentSeason, rangeDaysRestNAs introduits lors de la conversion automatiqueNAs introduits lors de la conversion automatiqueNAs introduits lors de la conversion automatiqueUnknown columns: orderSort, namePlayerLastFirst, dateGameLastPlayedUnknown columns: orderSort, idLeague, namePlayerLastFirstNAs introduits lors de la conversion automatiqueNAs introduits lors de la conversion automatiqueNAs introduits lors de la conversion automatiqueUnknown columns: orderSort, namePlayerLastFirst, dateGameLastPlayedUnknown columns: orderSort, idLeague, namePlayerLastFirstJoining, by = c("typeSeason", "modeSearch", "typeMeasure", "numberTable", "slugSeason")Unknown columns: idLeagueUnknown columns: resultGame, locationGame, nameSeasonMonth, segmentSeason, rangeDaysRestUnknown columns: orderSort, namePlayerLastFirst, dateGameLastPlayedUnknown columns: typeMeasureJoining, by = "idPlayerPasserPassTo"Unknown columns: orderSort, idLeague, dateGameLastPlayedJoining, by = c("typeSeason", "modeSearch", "numberTable", "slugSeason", "idPlayer", "idTeam")Unknown columns: idLeagueUnknown columns: resultGame, locationGame, nameSeasonMonth, segmentSeason, rangeDaysRestUnknown columns: orderSort, namePlayerLastFirst, dateGameLastPlayedUnknown columns: typeMeasureJoining, by = "idPlayerPasserPassTo"Unknown columns: orderSort, idLeague, dateGameLastPlayedJoining, by = c("typeSeason", "modeSearch", "numberTable", "slugSeason", "idPlayer", "idTeam")Unknown columns: idLeagueUnknown columns: resultGame, locationGame, nameSeasonMonth, segmentSeason, rangeDaysRestNAs introduits lors de la conversion automatiqueNAs introduits lors de la conversion automatiqueNAs introduits lors de la conversion automatiqueUnknown columns: orderSort, namePlayerLastFirst, dateGameLastPlayedUnknown columns: orderSort, idLeague, namePlayerLastFirst, dateGameLastPlayedNAs introduits lors de la conversion automatiqueNAs introduits lors de la conversion automatiqueNAs introduits lors de la conversion automatiqueUnknown columns: orderSort, namePlayerLastFirst, dateGameLastPlayedUnknown columns: orderSort, idLeague, namePlayerLastFirst, dateGameLastPlayedJoining, by = c("typeSeason", "modeSearch", "typeMeasure", "numberTable", "slugSeason")Unknown columns: idLeagueUnknown columns: resultGame, locationGame, nameSeasonMonth, segmentSeason, rangeDaysRestNAs introduits lors de la conversion automatiqueNAs introduits lors de la conversion automatiqueNAs introduits lors de la conversion automatiqueUnknown columns: orderSort, namePlayerLastFirst, dateGameLastPlayedUnknown columns: orderSort, idLeague, namePlayerLastFirst, dateGameLastPlayedNAs introduits lors de la conversion automatiqueNAs introduits lors de la conversion automatiqueNAs introduits lors de la conversion automatiqueUnknown columns: orderSort, namePlayerLastFirst, dateGameLastPlayedUnknown columns: orderSort, idLeague, namePlayerLastFirst, dateGameLastPlayedJoining, by = c("typeSeason", "modeSearch", "typeMeasure", "numberTable", "slugSeason")Unknown columns: idLeagueUnknown columns: resultGame, locationGame, nameSeasonMonth, segmentSeason, rangeDaysRestNAs introduits lors de la conversion automatiqueNAs introduits lors de la conversion automatiqueNAs introduits lors de la conversion automatiqueUnknown columns: orderSort, namePlayerLastFirst, dateGameLastPlayedUnknown columns: orderSort, idLeague, namePlayerLastFirstNAs introduits lors de la conversion automatiqueNAs introduits lors de la conversion automatiqueNAs introduits lors de la conversion automatiqueUnknown columns: orderSort, namePlayerLastFirst, dateGameLastPlayedUnknown columns: orderSort, idLeague, namePlayerLastFirstJoining, by = c("typeSeason", "modeSearch", "typeMeasure", "numberTable", "slugSeason")Unknown columns: idLeagueUnknown columns: resultGame, locationGame, nameSeasonMonth, segmentSeason, rangeDaysRestNAs introduits lors de la conversion automatiqueNAs introduits lors de la conversion automatiqueNAs introduits lors de la conversion automatiqueUnknown columns: orderSort, namePlayerLastFirst, dateGameLastPlayedUnknown columns: orderSort, idLeague, namePlayerLastFirstNAs introduits lors de la conversion automatiqueNAs introduits lors de la conversion automatiqueNAs introduits lors de la conversion automatiqueUnknown columns: orderSort, namePlayerLastFirst, dateGameLastPlayedUnknown columns: orderSort, idLeague, namePlayerLastFirstJoining, by = c("typeSeason", "modeSearch", "typeMeasure", "numberTable", "slugSeason")Unknown columns: idLeagueUnknown columns: resultGame, locationGame, nameSeasonMonth, segmentSeason, rangeDaysRestUnknown columns: orderSort, namePlayerLastFirst, dateGameLastPlayedUnknown columns: typeMeasureJoining, by = "idPlayerPasserPassTo"Unknown columns: orderSort, idLeague, dateGameLastPlayedJoining, by = c("typeSeason", "modeSearch", "numberTable", "slugSeason", "idPlayer", "idTeam")Unknown columns: idLeagueUnknown columns: resultGame, locationGame, nameSeasonMonth, segmentSeason, rangeDaysRestUnknown columns: orderSort, namePlayerLastFirst, dateGameLastPlayedUnknown columns: typeMeasureJoining, by = "idPlayerPasserPassTo"Unknown columns: orderSort, idLeague, dateGameLastPlayedJoining, by = c("typeSeason", "modeSearch", "numberTable", "slugSeason", "idPlayer", "idTeam")Unknown columns: idLeagueUnknown columns: resultGame, locationGame, nameSeasonMonth, segmentSeason, rangeDaysRestNAs introduits lors de la conversion automatiqueNAs introduits lors de la conversion automatiqueNAs introduits lors de la conversion automatiqueUnknown columns: orderSort, namePlayerLastFirst, dateGameLastPlayedUnknown columns: orderSort, idLeague, namePlayerLastFirst, dateGameLastPlayedNAs introduits lors de la conversion automatiqueNAs introduits lors de la conversion automatiqueNAs introduits lors de la conversion automatiqueUnknown columns: orderSort, namePlayerLastFirst, dateGameLastPlayedUnknown columns: orderSort, idLeague, namePlayerLastFirst, dateGameLastPlayedJoining, by = c("typeSeason", "modeSearch", "typeMeasure", "numberTable", "slugSeason")Unknown columns: idLeagueUnknown columns: resultGame, locationGame, nameSeasonMonth, segmentSeason, rangeDaysRestNAs introduits lors de la conversion automatiqueNAs introduits lors de la conversion automatiqueNAs introduits lors de la conversion automatiqueUnknown columns: orderSort, namePlayerLastFirst, dateGameLastPlayedUnknown columns: orderSort, idLeague, namePlayerLastFirst, dateGameLastPlayedNAs introduits lors de la conversion automatiqueNAs introduits lors de la conversion automatiqueNAs introduits lors de la conversion automatiqueUnknown columns: orderSort, namePlayerLastFirst, dateGameLastPlayedUnknown columns: orderSort, idLeague, namePlayerLastFirst, dateGameLastPlayedJoining, by = c("typeSeason", "modeSearch", "typeMeasure", "numberTable", "slugSeason")Unknown columns: idLeagueUnknown columns: resultGame, locationGame, nameSeasonMonth, segmentSeason, rangeDaysRestNAs introduits lors de la conversion automatiqueNAs introduits lors de la conversion automatiqueNAs introduits lors de la conversion automatiqueUnknown columns: orderSort, namePlayerLastFirst, dateGameLastPlayedUnknown columns: orderSort, idLeague, namePlayerLastFirstNAs introduits lors de la conversion automatiqueNAs introduits lors de la conversion automatiqueNAs introduits lors de la conversion automatiqueUnknown columns: orderSort, namePlayerLastFirst, dateGameLastPlayedUnknown columns: orderSort, idLeague, namePlayerLastFirstJoining, by = c("typeSeason", "modeSearch", "typeMeasure", "numberTable", "slugSeason")Unknown columns: idLeagueUnknown columns: resultGame, locationGame, nameSeasonMonth, segmentSeason, rangeDaysRestNAs introduits lors de la conversion automatiqueNAs introduits lors de la conversion automatiqueNAs introduits lors de la conversion automatiqueUnknown columns: orderSort, namePlayerLastFirst, dateGameLastPlayedUnknown columns: orderSort, idLeague, namePlayerLastFirstNAs introduits lors de la conversion automatiqueNAs introduits lors de la conversion automatiqueNAs introduits lors de la conversion automatiqueUnknown columns: orderSort, namePlayerLastFirst, dateGameLastPlayedUnknown columns: orderSort, idLeague, namePlayerLastFirstJoining, by = c("typeSeason", "modeSearch", "typeMeasure", "numberTable", "slugSeason")Unknown columns: idLeagueUnknown columns: resultGame, locationGame, nameSeasonMonth, segmentSeason, rangeDaysRestUnknown columns: orderSort, namePlayerLastFirst, dateGameLastPlayedUnknown columns: typeMeasureJoining, by = "idPlayerPasserPassTo"Unknown columns: orderSort, idLeague, dateGameLastPlayedJoining, by = c("typeSeason", "modeSearch", "numberTable", "slugSeason", "idPlayer", "idTeam")Unknown columns: idLeagueUnknown columns: resultGame, locationGame, nameSeasonMonth, segmentSeason, rangeDaysRestUnknown columns: orderSort, namePlayerLastFirst, dateGameLastPlayedUnknown columns: typeMeasureJoining, by = "idPlayerPasserPassTo"Unknown columns: orderSort, idLeague, dateGameLastPlayedJoining, by = c("typeSeason", "modeSearch", "numberTable", "slugSeason", "idPlayer", "idTeam")Unknown columns: idLeagueUnknown columns: resultGame, locationGame, nameSeasonMonth, segmentSeason, rangeDaysRestNAs introduits lors de la conversion automatiqueNAs introduits lors de la conversion automatiqueNAs introduits lors de la conversion automatiqueUnknown columns: orderSort, namePlayerLastFirst, dateGameLastPlayedUnknown columns: orderSort, idLeague, namePlayerLastFirst, dateGameLastPlayedNAs introduits lors de la conversion automatiqueNAs introduits lors de la conversion automatiqueNAs introduits lors de la conversion automatiqueUnknown columns: orderSort, namePlayerLastFirst, dateGameLastPlayedUnknown columns: orderSort, idLeague, namePlayerLastFirst, dateGameLastPlayedJoining, by = c("typeSeason", "modeSearch", "typeMeasure", "numberTable", "slugSeason")Unknown columns: idLeagueUnknown columns: resultGame, locationGame, nameSeasonMonth, segmentSeason, rangeDaysRestNAs introduits lors de la conversion automatiqueNAs introduits lors de la conversion automatiqueNAs introduits lors de la conversion automatiqueUnknown columns: orderSort, namePlayerLastFirst, dateGameLastPlayedUnknown columns: orderSort, idLeague, namePlayerLastFirst, dateGameLastPlayedNAs introduits lors de la conversion automatiqueNAs introduits lors de la conversion automatiqueNAs introduits lors de la conversion automatiqueUnknown columns: orderSort, namePlayerLastFirst, dateGameLastPlayedUnknown columns: orderSort, idLeague, namePlayerLastFirst, dateGameLastPlayedJoining, by = c("typeSeason", "modeSearch", "typeMeasure", "numberTable", "slugSeason")Unknown columns: idLeagueUnknown columns: resultGame, locationGame, nameSeasonMonth, segmentSeason, rangeDaysRest
Erreur : by required, because the data sources have no common variables

What is the problem ?
Thank you !

seasons_schedule error

seasons_schedule() is returning the following error. Function still returns a dataframe with columns
"typeSeason", "slugSeason", "idGame", "dateGame", "slugMatchup", "slugTeamWinner", "slugTeamLoser", and "numberGameDay"

schedule1819 = seasons_schedule()

Acquiring NBA basic team game logs for the 2018-19 Regular Season
Joining, by = c("slugTeam", "dateGame", "idTeam", "yearSeason")Warning messages:
1: Unknown columns: orderSort, idLeague, namePlayerLastFirst, dateGameLastPlayed
2: All elements of ... must be named.
Did you want dataTables = c(typeSeason, dateGame, idGame, numberGameTeamSeason, nameTeam, idTeam, isB2B, isB2BFirst, isB2BSecond, locationGame, slugMatchup, slugTeam, countDaysRestTeam, countDaysNextGameTeam, slugOpponent, slugTeamWinner, slugTeamLoser, outcomeGame, isWin, fgmTeam, fgaTeam, pctFGTeam, fg3mTeam, fg3aTeam, pctFG3Team, pctFTTeam, hasVideo, fg2mTeam, fg2aTeam, pctFG2Team, minutesTeam, ftmTeam, ftaTeam, orebTeam, drebTeam, trebTeam, astTeam, stlTeam, blkTeam, tovTeam, pfTeam, ptsTeam, plusminusTeam, urlTeamSeasonLogo)?
3: cols is now required.
Please use cols = c(dataTables)
4: Unknown columns: idSeason

objects getNodeSet and xmlRoot are not exported by namespace:XML

all_salaries <-

  • get_all_team_salaries()
    Joining by: "slug.team"
    Error: objects ‘getNodeSet’, ‘xmlRoot’ are not exported by 'namespace:XML'

I've dug into this a decent amount, and tried assigning it in my namespace per StackOverflow, but am told that there is no binding for xmlRoot. I'm not well versed in R, so I'm having trouble sorting out what the issue is.

box_scores function doesn't work!!!

Im using this function in my R Project with this parameters:
boxdata_scores <- box_scores(game_ids = c(0011800001), box_score_types = c("Traditional"), result_types = c("team"), join_data = TRUE, assign_to_environment = TRUE, return_message = TRUE)

And return me an error:
Unknown or uninitialised column: 'typeResult'.

Can you solve this problem?

Attendance by game

For the life of me I can't figure out how to access any of the attendance data - I see that some of the deeper functions (like widen_bref_data) reference attendance as a field, but they don't reference what function generates a dataset with those columns.

Any pointers?

synergy() not working

When I try to run the synergy example:

synergy(seasons = 2019, result_types = c("player", "team"), season_types = c("Regular Season"), set_types = "offensive", categories = c("Transition", "Isolation", "PRBallHandler", "PRRollman", "Postup", "Spotup", "Handoff", "Cut", "OffScreen", "OffRebound", "Misc"), results = 500, assign_to_environment = TRUE, return_wide = F, return_message = TRUE)

I get the following error: Error in eval(lhs, parent, parent) : object 'types' not found

Warnings after attaching package

Hey Alex,

Happy the NBA comes back day! Filing this in anticipation of in-season traffic. I get the following 27 warnings when library(nbastatR) is the first call in a clean R session:

library(nbastatR)
#> There were 27 warnings (use warnings() to see them)
warnings()
#> Warning messages:
#> 1: replacing previous import ‘dplyr::collapse’ by ‘glue::collapse’ when loading ‘nbastatR’
#> 2: replacing previous import ‘curl::handle_reset’ by ‘httr::handle_reset’ when loading ‘nbastatR’
#> 3: replacing previous import ‘dplyr::intersect’ by ‘lubridate::intersect’ when loading ‘nbastatR’
#> 4: replacing previous import ‘dplyr::union’ by ‘lubridate::union’ when loading ‘nbastatR’
#> 5: replacing previous import ‘dplyr::setdiff’ by ‘lubridate::setdiff’ when loading ‘nbastatR’
#> 6: replacing previous import ‘jsonlite::flatten’ by ‘purrr::flatten’ when loading ‘nbastatR’
#> 7: replacing previous import ‘magrittr::set_names’ by ‘purrr::set_names’ when loading ‘nbastatR’
#> 8: replacing previous import ‘curl::parse_date’ by ‘readr::parse_date’ when loading ‘nbastatR’
#> 9: replacing previous import ‘purrr::list_along’ by ‘rlang::list_along’ when loading ‘nbastatR’
#> 10: replacing previous import ‘purrr::invoke’ by ‘rlang::invoke’ when loading ‘nbastatR’
#> 11: replacing previous import ‘purrr::modify’ by ‘rlang::modify’ when loading ‘nbastatR’
#> 12: replacing previous import ‘purrr::as_function’ by ‘rlang::as_function’ when loading ‘nbastatR’
#> 13: replacing previous import ‘purrr::flatten_dbl’ by ‘rlang::flatten_dbl’ when loading ‘nbastatR’
#> 14: replacing previous import ‘jsonlite::unbox’ by ‘rlang::unbox’ when loading ‘nbastatR’
#> 15: replacing previous import ‘purrr::rep_along’ by ‘rlang::rep_along’ when loading ‘nbastatR’
#> 16: replacing previous import ‘purrr::flatten_lgl’ by ‘rlang::flatten_lgl’ when loading ‘nbastatR’
#> 17: replacing previous import ‘purrr::flatten_int’ by ‘rlang::flatten_int’ when loading ‘nbastatR’
#> 18: replacing previous import ‘purrr::%@%’ by ‘rlang::%@%’ when loading ‘nbastatR’
#> 19: replacing previous import ‘purrr::flatten_chr’ by ‘rlang::flatten_chr’ when loading ‘nbastatR’
#> 20: replacing previous import ‘purrr::splice’ by ‘rlang::splice’ when loading ‘nbastatR’
#> 21: replacing previous import ‘purrr::flatten’ by ‘rlang::flatten’ when loading ‘nbastatR’
#> 22: replacing previous import ‘purrr::prepend’ by ‘rlang::prepend’ when loading ‘nbastatR’
#> 23: replacing previous import ‘purrr::%||%’ by ‘rlang::%||%’ when loading ‘nbastatR’
#> 24: replacing previous import ‘readr::guess_encoding’ by ‘rvest::guess_encoding’ when loading ‘nbastatR’
#> 25: replacing previous import ‘purrr::pluck’ by ‘rvest::pluck’ when loading ‘nbastatR’
#> 26: replacing previous import ‘magrittr::extract’ by ‘tidyr::extract’ when loading ‘nbastatR’
#> 27: replacing previous import ‘rlang::as_list’ by ‘xml2::as_list’ when loading ‘nbastatR’

I haven't actually run into any problems related to this, and I've been using conflicted and prefixer in any scripts I plan on running not-interactively as a cautionary measure. But, again, lest anyone else stumble into this and get scared, thought it'd be helpful to have this here!

🏀🤓

bref_team_stats(seasons =2017) not working

The function seems to be working for all other years but for some reason not getting any data from the 2016-17 season.

<error> message: byrequired, because the data sources have no common variables class: rlang_errorfields: message, traceandparent backtrace: █ └─nbastatR::bref_teams_stats(2017) └─%>%(...) ├─base::withVisible(eval(quote(_fseq(_lhs)), env, env)) └─base::eval(quote(_fseq(_lhs)), env, env) └─base::eval(quote(_fseq(_lhs)), env, env) └─nbastatR:::_fseq(_lhs) └─magrittr::freduce(value, _function_list) └─function_list[[i]](value) ├─dplyr::left_join(., df_urls) └─dplyr:::left_join.tbl_df(., df_urls) ├─dplyr::common_by(by, x, y) └─dplyr:::common_by.NULL(by, x, y) └─dplyr:::bad_args("by", "required, because the data sources have no common variables") └─dplyr:::glubort(fmt_args(args), ..., .envir = .envir)

Best use of this library

Hi thank you for creating this package.
I was just unsure of how to best use this library. How would I go about it?
Any guidance would be awesome!

Trying to run players_tables() to pull the NBA.com passing table

I want to pull this table and I guess I'm just not getting how to do it. After a little digging I figured this would be correct:

players_tables(player_ids = df_dict_nba_players[which(df_dict_nba_players$isActive==T),], tables='passes',modes="Totals")

The resulting error is Error in sort.int(x, na.last = na.last, decreasing = decreasing, ...) : 'x' must be atomic. Do you have any guidance on what I should do to fix it?

Players with č, ć, ö, etc. don't show up when running bref_players_stats()

bref_players_stats(2019), for example, leaves out some key players like Doncic and Jokic. They show up when looking at awards datasets with bref_awards_votes(), for example, and when using the NBA.com data.

nba_player_ids('Luka Doncic')
[1] 1629029

I've reinstalled the package with no luck. Any advice would be helpful!

Pro Sports Transactions functions

I think the Pro Sports Transactions function (e.g. get_nba_pst_transactions()) should substitute spaces in the person's name with "+". For example, get_nba_pst_transaction("Blake Griffin") should change "Blake Griffin" to "Blake+Griffin" under the hood. Otherwise you are likely to get a "Error in open.connection(con, "rb") : HTTP error 400" message.

Add decimals to timeQuarter in play-by-play with < 1 min left in quarter

Is it possible to add the decimal to the timeQuarter column in the output of the play_by_play_v2 function when the play happens with under a minute left in a quarter? I tried making a call to the API and realized that they add the decimal in these situations. Here's an example:

library(httr)
library(jsonlite)
library(tidyverse)

test_call <-  GET("http://data.nba.net/prod/v1/20200311/0021900971_pbp_4.json")

data_test <- fromJSON(rawToChar(test_call$content))

pbp_test <- data_test %>%
  pluck("plays") %>%
  as_tibble()

pbp_teste %>%
  filter(str_detect(clock, "00:")) %>%
  select(clock)

And the output:

[1] "00:51.6" "00:50.1" "00:50.1" "00:50.1" "00:50.1" "00:48.5" "00:38.4" "00:34.3" "00:34.3" "00:32.1" "00:13.5" "00:08.1" "00:04.7" "00:00.0"

It would be really helpful for play-by-play data analysis. Thanks in advance!

Can't install package

When I try to install the nbastatR package I get the follwing...

installing` the source package ‘digest’

trying URL 'https://cran.rstudio.com/src/contrib/digest_0.6.25.tar.gz'
Content type 'application/x-gzip' length 145642 bytes (142 KB)
downloaded 142 KB

ERROR: failed to lock directory 'C:/Users/maxwh/Documents/R/win-library/3.6' for modifying
Try removing 'C:/Users/maxwh/Documents/R/win-library/3.6/00LOCK-digest'
Error: Failed to install 'nbastatR' from GitHub:
(converted from warning) installation of package ‘digest’ had non-zero exit `status

Is there anything I need to do?

bref_bios

There seems to be a bug in the bref_bios function. Here is my code:

library(nbastatR)
bref_bios("Kyle Lowry")[[6]]
bref_bios("Kawhi Leonard")[[6]]
bref_bios(c("Michael Jordan", "Kobe Bryant")[[6]]

all the bio information is for Kyle Lowry (or whatever the first bio you search for). This doesn't seem to be the case for other elements of the tibble -- just the sixth. Any help or possible workarounds are appreciated!

seasons_rosters failed in 2015 and 2016

When I execute this code:

library(nbastatR)
library(future)
library(openxlsx)
library(dplyr)
plan(multiprocess) 

for (iter in 2004:2016) {
  rosters = seasons_rosters(iter)
  openxlsx::write.xlsx(rosters, paste0('rosters-', iter, '.xlsx'))
}

it's works in years 2004-2014 but then in the last two years failed with this type of error:

Error in open.connection(con, "rb") : Send failure: Connection was reset

Any idea of how can i execute this function properly?

"tidyjson" not available

ERROR: dependency ‘tidyjson’ is not available for package ‘nbastatR’

  • removing ‘/Library/Frameworks/R.framework/Versions/3.4/Resources/library/nbastatR’
    Installation failed: Command failed (1)

--> this is the error I get when running the line:

1 devtools::install_github("abresler/nbastatR")

Package problems

Thanks for the great package, I noticed a few things which you might want to resolve to help people use the package:

  • Specify imports, currently you are importing lots of functions without using the :: or @importFrom structure. This leads to all the scary warnings when loading the package, and also is an invitation for bugs because you're not specifying which namespace you want the function to come from.
  • A number of missing dependencies in the Description file (stringi, rlang, glue)
  • Lots of undefined global variables (which can be resolved using the .data$ object from dplyr)
  • Test failures

I'm happy to help with some of the issues if there's an interest, but even if you're not ever planning ton putting this on CRAN, passing CRAN checks is a really good way to improve how people use the package.

Play by Play Substitution Events Question

This isn't really an issue more of a question. I'm trying to add 10 columns to each row of the play by play data to show the 10 players on the court during each event. I snagged the starters via the traditional box scores 'isStarter' for the specific 'idGame' as a starting point. Then I figured out that 'numberEventMessageType == "8"' is the event # for a substitution. From there I can run through each column of the players on the court and find which column matches the 'namePlayer1' (the one subing out) and replace it with 'namePlayer2' (the one who is replacing him in the lineup). However it looks like I run into a snag in that there isn't an event row when a subsitution occurs between quarters, or at least from the sample idGames i've been testing it with. I noticed the 'numberEvent' skips some numbers so I assume you filtered out some events in the entire playbyplay log that may not necessarily pertain to a statistical event. I've looked through the code to see where this might be filtered out but I cannot find it. Is it possible to capture all substitution events even if they happen between quarters? Or is that even in the original dataset?

I'm only a couple weeks into teaching myself R and I'm using what you have created to make this a fun learning experience. Most of my experience with data is SQL based so I've been using your package here to write tables to my localhost SQL to be able to competently manipulate it then going back and looking up how to do it within R studio it's fun stuff. Thanks for sharing this I work a lot with SQL and Power BI and being able to use R script is proving very useful.

boxscores

Since Nov 7 2019,
g = box_scores(game_ids = c(21700002), box_score_types = c("Traditional"), result_types = c("player"), join_data = TRUE, assign_to_environment = TRUE, return_message = TRUE)

The code above produces these errors:
Warning messages:
1: In for (ii in 1L:length(res)) { :
closing unused connection 4 (https://stats.nba.com/stats/boxscoretraditionalv2?SeasonType=&LeagueID=00&Season=&IsOnlyCurrentSeason=&PlayerID=&TeamID=&GameID=0021700002&ContextMeasure=&PlayerPosition=&DateFrom=&DateTo=&GameSegment=&LastNGames=&Location=&Month=&OpponentTeamID=&Outcome=&SeasonSegment=&VSConference=&VSDivision=&RookieYear=&Period=&StartPeriod=0&EndPeriod=12&StartRange=0&EndRange=12&RangeType=1&runType=)
2: Unknown or uninitialised column: 'typeResult'.
3: Unknown or uninitialised column: 'typeResult'.

The nba api seems to have changed. I found for another project that they have added a Referer to headers. And setting 'Referer': 'https://stats.nba.com/', was a workaround.
headers = {
'Host': 'stats.nba.com',
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:61.0) Gecko/20100101 Firefox/61.0',
'Accept': 'application/json, text/plain, /',
'Accept-Language': 'en-US,en;q=0.5',
'Referer': 'https://stats.nba.com/',
'Accept-Encoding': 'gzip, deflate, br',
'Connection': 'keep-alive',
}

I have some errors when I install the library

When I install the library with this command:
devtools::install_github("abresler/nbastatR", upgrade = TRUE, force = TRUE, dependencies = TRUE)

The final response is that:
Warning messages:
1: In untar2(tarfile, files, list, exdir) :
skipping pax global extended headers
2: In untar2(tarfile, files, list, exdir) :
skipping pax global extended headers

And then, with some functions I have some problems. Any idea how can I install properly the library?

Errors starting on 11/7/2019

Hi, i've been using the package for the past 2 weeks to pull gamelogs from this season and have updated it every morning without any issues. This morning I tried using it and my code didn't execute and I got the following errors.

When I try running the seasons_schedule function I get this error:
Error: Column dateGame is unknown
In addition: Warning message:
In for (i in seq_along(ix)) { :
closing unused connection 4 (https://stats.nba.com/stats/leaguegamelog?Counter=1000&Season=2019-20&Direction=DESC&LeagueID=00&PlayerOrTeam=T&SeasonType=Regular%20Season&Sorter=DATE)

And when I try running the game_logs function I get this error:
Error in open.connection(con, "rb") : Send failure: Connection was reset

Is anyone able to reproduce these issues?

team_game_logs doenst stop running, giving no result

Thank you for the package, it has been very usefull to me.
I have been using it to colect the team_logs.
Today i run the team_game_logs and the function keeps running until i stop it, therefore is not working for me.

bref_team_stats(seasons =2018) not working

It looks like the site added a Net Rating column for the 2018 season in the Miscellaneous Stats table (and not for previous seasons), which causes bref_team_stats(seasons = 2018) to fail for me. (The error that is returned for me is "Error in select_impl(.data, vars) : Column 28 cannot have NA as name".) From browsing the source code, it looks like this may be due to actual_names in .parse.bref.team.misc() not expecting this extra column, which causes all columns to the right to be offset.

I'm not sure what's the best way to address this, otherwise I may have submitted a pull request. Maybe just extract the season out from the end of the url (e.g. 2018 from "https://www.basketball-reference.com/leagues/NBA_2018.html")?

players_rotowire

the players_rotowire() function always returns the default number of results (50).

suggestion (adding results param):

all_data <-
      ids %>%
      future_map_dfr(function(id) {
        get_player_rotowire_news_safe(player_id = id, return_message = return_message, results = results)
      })

Can't run bref_teams_stats(seasons = 2019)

This is the output, not sure what's wrong. Any ideas?

Parsing https://www.basketball-reference.com/leagues/NBA_2019.html
Warning: 1 parsing failure.
row col expected actual
  1  -- a number      —

Joining, by = "nameTeam"
Warning: 1 parsing failure.
row col expected actual
  1  -- a number      —

Joining, by = "nameTeam"
Joining, by = "idRow"
Warning: 3 parsing failures.
row col expected actual
  1  -- a number      —
  6  -- a number      —
 11  -- a number      —

Joining, by = "nameTeam"
Joining, by = "idRow"
Warning: 3 parsing failures.
row col expected actual
  1  -- a number      —
  6  -- a number      —
 11  -- a number      —

Joining, by = "nameTeam"
Joining, by = "nameTeam"
Joining, by = "nameTeam"
Joining, by = "nameTeam"
Joining, by = "nameTeam"
Joining, by = "nameTeam"
Joining, by = "nameTeam"
Joining, by = "nameTeam"
Joining, by = "nameTeam"
Joining, by = "nameTeam"
Joining, by = "urlSeasonBREF"
Joining, by = "idTable"
StandingsConf
Assigning NBA player dictionary to df_dict_nba_players to your environment
Error in open.connection(con, "rb") : 
  OpenSSL SSL_read: SSL_ERROR_SYSCALL, errno 104
In addition: Warning messages:
1: In pairlist(parent.frame()) :
  closing unused connection 4 (https://stats.nba.com/stats/commonallplayers?IsOnlyCurrentSeason=0&LeagueID=00&Season=2018-19)
2: Expected 2 pieces. Missing pieces filled with `NA` in 3 rows [1, 7, 13]. 
3: In function_list[[k]](value) : NAs introduced by coercion
4: In function_list[[k]](value) : NAs introduced by coercion
5: Expected 2 pieces. Missing pieces filled with `NA` in 3 rows [1, 7, 13]. 
6: In function_list[[k]](value) : NAs introduced by coercion
7: In function_list[[k]](value) : NAs introduced by coercion```

get_teams_details() function buggy

get_teams_details() function grabs team details of all teams, even when team ID is supplied.

> get_teams_details(team_ids=1610612755)
Acquiring team details for the Atlanta Hawks
Acquiring team details for the Boston Celtics
Acquiring team details for the Cleveland Cavaliers
Acquiring team details for the New Orleans Pelicans
Acquiring team details for the Chicago Bulls
Acquiring team details for the Dallas Mavericks
Acquiring team details for the Denver Nuggets
Acquiring team details for the Golden State Warriors
.
.
.

Error in `current_schedule()` bc bigleaguegraphs is down?!

Hey Alex,

So, for the life of me, I can't figure out why this won't reproduce in a reprex, but when I run current_schedule() I get an error because bigleaguegraphs.com is down (which, indeed, seems to have been the case for the past couple of days — or at least that's when I started getting this error).

nba_schedule <- current_schedule()
#> Error in open.connection(con, "rb") : 
#>  Could not resolve host: bigleaguegraphs.com

I don't need the bigleaguegraphs data, and when I actually run it through reprex, it looks like it works, but not in an interactive R session (I deleted the warnings on library load, since they're irrelevant):

library(nbastatR)
nba_schedule <- current_schedule()
#> Joining, by = "idTeamHome"
#> Joining, by = "idTeamAway"
#> Joining, by = "idRow"
#> Joining, by = "idRow"
#> Joining, by = "idRow"
#> Joining, by = "idRow"

Created on 2019-04-26 by the reprex package (v0.2.1.9000)

If you point me in the right direction, I'm happy to try to do a PR. I just haven't been able to find the tie-in yet.

Thanks,

Mara

Error running "teams_tables"

Hi,
I have an error while running the teams_tables function.

Function used:
teams_tables(all_active_teams =TRUE,
             seasons = 2018, tables = c("Lineup"), measures = "Usage", modes = c("PerGame"),return_message = TRUE)

Error :
<error/rlang_error>
`by` required, because the data sources have no common variables
Backtrace:
     x
  1. \-nbastatR::teams_tables(...)
  2.   \-`%>%`(...)
  3.     +-base::withVisible(eval(quote(`_fseq`(`_lhs`)), env, env))
  4.     \-base::eval(quote(`_fseq`(`_lhs`)), env, env)
  5.       \-base::eval(quote(`_fseq`(`_lhs`)), env, env)
  6.         \-nbastatR:::`_fseq`(`_lhs`)
  7.           \-magrittr::freduce(value, `_function_list`)
  8.             \-function_list[[i]](value)
  9.               +-dplyr::left_join(., df_dict_table_names)
 10.               \-dplyr:::left_join.tbl_df(., df_dict_table_names)
 11.                 +-dplyr::common_by(by, x, y)
 12.                 \-dplyr:::common_by.NULL(by, x, y)
 13.                   \-dplyr:::bad_args("by", "required, because the data sources have no common variables")
 14.                     \-dplyr:::glubort(fmt_args(args), ..., .envir = .envir)```

Thank you.

Issues with players_tables()

I'm getting an error when running players_tables(). Looks like the NBA Player Table JSON has not updated the Active player list.

I ran the following and got this error

library(tidyverse)
library(nbastatR)


df_players <- nba_players()
#> Warning: Expected 2 pieces. Missing pieces filled with `NA` in 4 rows
#> [1711, 3160, 4334, 4340].

player_ids <- df_players %>% filter(yearSeasonLast == 2018) %>% pull(idPlayer)
players_tables(player_ids = player_ids %>% sample(5), tables = "passes", modes = "Totals")
#> Assigning NBA player dictionary to df_dict_nba_players to your environment
#> Warning: Expected 2 pieces. Missing pieces filled with `NA` in 4 rows
#> [1711, 3160, 4334, 4340].
#> Warning: Expected 2 pieces. Missing pieces filled with `NA` in 4 rows
#> [1711, 3160, 4334, 4340].
#> Acquiring Lou Williams 2019 Regular Season Base passes Totals data
#> Acquiring Wesley Matthews 2019 Regular Season Base passes Totals data
#> Acquiring Jonas Valanciunas 2019 Regular Season Base passes Totals data
#> Acquiring Dewayne Dedmon 2019 Regular Season Base passes Totals data
#> Acquiring Amile Jefferson 2019 Regular Season Base passes Totals data
#> Warning: Unknown columns: `orderSort`, `namePlayerLastFirst`,
#> `dateGameLastPlayed`
#> Warning: Unknown columns: `typeMeasure`
#> Joining, by = "idPlayerPasserPassTo"
#> Warning: Unknown columns: `orderSort`, `idLeague`, `dateGameLastPlayed`
#> Joining, by = c("typeSeason", "modeSearch", "numberTable", "slugSeason", "idPlayer", "idTeam")
#> Warning: Unknown columns: `idLeague`
#> Warning: Unknown columns: `resultGame`, `locationGame`, `nameSeasonMonth`,
#> `segmentSeason`, `rangeDaysRest`
#> Warning: Unknown columns: `orderSort`, `namePlayerLastFirst`,
#> `dateGameLastPlayed`
#> Warning: Unknown columns: `typeMeasure`
#> Joining, by = "idPlayerPasserPassTo"
#> Warning: Unknown columns: `orderSort`, `idLeague`, `dateGameLastPlayed`
#> Joining, by = c("typeSeason", "modeSearch", "numberTable", "slugSeason", "idPlayer", "idTeam")
#> Warning: Unknown columns: `idLeague`
#> Warning: Unknown columns: `resultGame`, `locationGame`, `nameSeasonMonth`,
#> `segmentSeason`, `rangeDaysRest`
#> Warning: Unknown columns: `orderSort`, `namePlayerLastFirst`,
#> `dateGameLastPlayed`
#> Warning: Unknown columns: `typeMeasure`
#> Joining, by = "idPlayerPasserPassTo"
#> Warning: Unknown columns: `orderSort`, `idLeague`, `dateGameLastPlayed`
#> Joining, by = c("typeSeason", "modeSearch", "numberTable", "slugSeason", "idPlayer", "idTeam")
#> Warning: Unknown columns: `idLeague`
#> Warning: Unknown columns: `resultGame`, `locationGame`, `nameSeasonMonth`,
#> `segmentSeason`, `rangeDaysRest`
#> Warning: Unknown columns: `orderSort`, `namePlayerLastFirst`,
#> `dateGameLastPlayed`
#> Warning: Unknown columns: `typeMeasure`
#> Joining, by = "idPlayerPasserPassTo"
#> Warning: Unknown columns: `orderSort`, `idLeague`, `dateGameLastPlayed`
#> Joining, by = c("typeSeason", "modeSearch", "numberTable", "slugSeason", "idPlayer", "idTeam")
#> Warning: Unknown columns: `idLeague`
#> Warning: Unknown columns: `resultGame`, `locationGame`, `nameSeasonMonth`,
#> `segmentSeason`, `rangeDaysRest`
#> Warning: Unknown columns: `orderSort`, `namePlayerLastFirst`,
#> `dateGameLastPlayed`
#> Warning: Unknown columns: `typeMeasure`
#> Joining, by = "idPlayerPasserPassTo"
#> Warning: Unknown columns: `orderSort`, `idLeague`, `dateGameLastPlayed`
#> Joining, by = c("typeSeason", "modeSearch", "numberTable", "slugSeason", "idPlayer", "idTeam")
#> Warning: Unknown columns: `idLeague`
#> Warning: Unknown columns: `resultGame`, `locationGame`, `nameSeasonMonth`,
#> `segmentSeason`, `rangeDaysRest`
#> `by` required, because the data sources have no common variables

nba_players() Error

Getting the following error every time I run nba_players():

"Error: Result 14 must be a single string, not a character vector of length 0"

Have tried reinstalling the package and restarting my R session, but nothing seems to work. This function was working fine just a few days ago

get_days_nba_score() not working

Hey Alex,

get_days_nba_score() isn't working today (I run it on the daily, so it was definitely working yesterday). This happened both before and after I updated, so I'm not sure it has to do with a change on your end.

reprex

library(nbastatR, warn.conflicts = FALSE)
yest_scores <- get_days_nba_scores(game_dates = "2018-10-24")
#> Getting NBA game details for 2018-10-24
#> Warning: Unknown or uninitialised column: 'nameTable'.

Created on 2018-10-25 by the reprex package (v0.2.1.9000)

Session info
devtools::session_info()
#> ─ Session info ──────────────────────────────────────────────────────────
#>  setting  value                       
#>  version  R version 3.5.1 (2018-07-02)
#>  os       macOS Sierra 10.12.6        
#>  system   x86_64, darwin15.6.0        
#>  ui       X11                         
#>  language (EN)                        
#>  collate  en_US.UTF-8                 
#>  ctype    en_US.UTF-8                 
#>  tz       America/New_York            
#>  date     2018-10-25                  
#> 
#> ─ Packages ──────────────────────────────────────────────────────────────
#>  package     * version     date       lib
#>  assertthat    0.2.0       2017-04-11 [1]
#>  backports     1.1.2       2017-12-13 [1]
#>  base64enc     0.1-3       2015-07-28 [1]
#>  callr         3.0.0       2018-08-24 [1]
#>  cli           1.0.1       2018-09-25 [1]
#>  codetools     0.2-15      2016-10-05 [1]
#>  crayon        1.3.4       2017-09-16 [1]
#>  curl          3.2         2018-03-28 [1]
#>  debugme       1.1.0       2017-10-22 [1]
#>  desc          1.2.0       2018-05-01 [1]
#>  devtools      2.0.0       2018-10-19 [1]
#>  digest        0.6.18      2018-10-10 [1]
#>  dplyr         0.7.99.9000 2018-10-25 [1]
#>  evaluate      0.12        2018-10-09 [1]
#>  fs            1.2.6       2018-08-23 [1]
#>  furrr         0.1.0       2018-05-16 [1]
#>  future        1.10.0      2018-10-17 [1]
#>  globals       0.12.4      2018-10-11 [1]
#>  glue          1.3.0       2018-08-23 [1]
#>  highr         0.7         2018-06-09 [1]
#>  hms           0.4.2.9001  2018-08-22 [1]
#>  htmltools     0.3.6       2017-04-28 [1]
#>  httr          1.3.1       2017-08-20 [1]
#>  jsonlite      1.5         2017-06-01 [1]
#>  knitr         1.20.21     2018-10-23 [1]
#>  listenv       0.7.0       2018-01-21 [1]
#>  lubridate     1.7.4       2018-04-11 [1]
#>  magrittr      1.5         2014-11-22 [1]
#>  memoise       1.1.0       2017-04-21 [1]
#>  nbastatR    * 0.1.11101   2018-10-25 [1]
#>  pillar        1.3.0.9001  2018-10-17 [1]
#>  pkgbuild      1.0.2       2018-10-16 [1]
#>  pkgconfig     2.0.2       2018-08-16 [1]
#>  pkgload       1.0.1       2018-10-11 [1]
#>  prettyunits   1.0.2       2015-07-13 [1]
#>  processx      3.2.0       2018-08-16 [1]
#>  ps            1.2.0       2018-10-16 [1]
#>  purrr       * 0.2.5       2018-05-29 [1]
#>  R6            2.3.0       2018-10-04 [1]
#>  Rcpp          0.12.19.3   2018-10-15 [1]
#>  readr         1.2.0       2018-10-25 [1]
#>  remotes       2.0.1       2018-10-19 [1]
#>  rlang         0.3.0.9000  2018-10-25 [1]
#>  rmarkdown     1.10        2018-06-11 [1]
#>  rprojroot     1.3-2       2018-01-03 [1]
#>  rvest         0.3.2       2016-06-17 [1]
#>  sessioninfo   1.1.0.9001  2018-10-08 [1]
#>  stringi       1.2.4       2018-07-20 [1]
#>  stringr       1.3.1       2018-05-10 [1]
#>  testthat      2.0.1       2018-10-13 [1]
#>  tibble        1.4.99.9005 2018-10-25 [1]
#>  tidyr         0.8.1.9000  2018-10-25 [1]
#>  tidyselect    0.2.5       2018-10-11 [1]
#>  usethis       1.4.0.9000  2018-10-03 [1]
#>  withr         2.1.2       2018-03-15 [1]
#>  xfun          0.3         2018-07-06 [1]
#>  xml2          1.2.0       2018-01-24 [1]
#>  yaml          2.2.0       2018-07-25 [1]
#>  source                            
#>  CRAN (R 3.5.0)                    
#>  CRAN (R 3.5.0)                    
#>  CRAN (R 3.5.0)                    
#>  CRAN (R 3.5.0)                    
#>  CRAN (R 3.5.0)                    
#>  CRAN (R 3.5.1)                    
#>  CRAN (R 3.5.0)                    
#>  CRAN (R 3.5.0)                    
#>  CRAN (R 3.5.0)                    
#>  CRAN (R 3.5.0)                    
#>  CRAN (R 3.5.1)                    
#>  CRAN (R 3.5.0)                    
#>  Github (tidyverse/dplyr@2ea8925)  
#>  CRAN (R 3.5.0)                    
#>  CRAN (R 3.5.0)                    
#>  CRAN (R 3.5.0)                    
#>  CRAN (R 3.5.1)                    
#>  CRAN (R 3.5.1)                    
#>  Github (tidyverse/glue@4e74901)   
#>  CRAN (R 3.5.0)                    
#>  Github (tidyverse/hms@979286f)    
#>  CRAN (R 3.5.0)                    
#>  CRAN (R 3.5.0)                    
#>  CRAN (R 3.5.0)                    
#>  Github (yihui/knitr@6c61415)      
#>  CRAN (R 3.5.0)                    
#>  CRAN (R 3.5.0)                    
#>  CRAN (R 3.5.0)                    
#>  CRAN (R 3.5.0)                    
#>  Github (abresler/nbastatR@658b57a)
#>  Github (r-lib/pillar@c5bf622)     
#>  CRAN (R 3.5.0)                    
#>  CRAN (R 3.5.0)                    
#>  CRAN (R 3.5.1)                    
#>  CRAN (R 3.5.0)                    
#>  CRAN (R 3.5.0)                    
#>  CRAN (R 3.5.0)                    
#>  CRAN (R 3.5.0)                    
#>  CRAN (R 3.5.0)                    
#>  Github (RcppCore/Rcpp@a669a19)    
#>  Github (tidyverse/readr@69c9fd3)  
#>  CRAN (R 3.5.1)                    
#>  Github (r-lib/rlang@9d3e832)      
#>  CRAN (R 3.5.0)                    
#>  CRAN (R 3.5.0)                    
#>  CRAN (R 3.5.0)                    
#>  Github (r-lib/sessioninfo@9645364)
#>  CRAN (R 3.5.0)                    
#>  CRAN (R 3.5.0)                    
#>  CRAN (R 3.5.0)                    
#>  Github (tidyverse/tibble@3b830a2) 
#>  Github (tidyverse/tidyr@c318c31)  
#>  CRAN (R 3.5.1)                    
#>  Github (r-lib/usethis@1e3c6a6)    
#>  CRAN (R 3.5.0)                    
#>  CRAN (R 3.5.0)                    
#>  CRAN (R 3.5.0)                    
#>  CRAN (R 3.5.0)                    
#> 
#> [1] /Library/Frameworks/R.framework/Versions/3.5/Resources/library

I've gotten Unknown or uninitialised column errors before and still had data returned, but not for this one. I appended the session info in case it's relevant. Let me know if there's anything I can do to help out, and I'll give it a shot over the weekend.

Thanks, as always, for this package!

get_game_logs() function doesn't work with older seasons

> get_game_logs(seasons=1965, result_types='team', season_types='Regular Season')
Acquiring basic team game logs for the 1964-65 Regular Season
Error in FUN(X[[i]], ...) : object 'typeResult' not found
In addition: Warning message:
Unknown variables: `orderSort`, `idLeague`, `namePlayerLastFirst`, `dateGameLastPlayed` 

bref_stats_players not able to run

A few weeks ago this function worked fine. Now, though, I run it and get the following result:

bref_players_stats(seasons = seasons, tables = c("advanced"))
Advanced
Error: must be an integer vector, not a double vector

ERROR on Installing nbastatR

devtools::install_github("abresler/nbastatR")
Downloading GitHub repo abresler/nbastatR@master
from URL https://api.github.com/repos/abresler/nbastatR/zipball/master
Installing nbastatR
"F:/PROGRA~2/R/R/bin/x64/R" --no-site-file --no-environ --no-save --no-restore --quiet CMD INSTALL
"C:/Users/Administrator/AppData/Local/Temp/RtmpMzRDma/devtools1b7863ba192f/abresler-nbastatR-031bc86" --library="F:/Program
Files/R/R/library" --install-tests

  • installing source package 'nbastatR' ...
    ** R
    Error in parse(outFile) :
    invalid multibyte character in parser at line 159
    ERROR: unable to collate and parse R files for package 'nbastatR'
  • removing 'F:/Program Files/R/R/library/nbastatR'
    Installation failed: Command failed (1)

Closest_defender_ranges inteams_players_stat

Cannot seem to get any of the data with the specific closest defender ranges. Issues like this: Acquiring all player PerGame shots Base split tables for the 2018-19 season
Missing CloseDefDistRange in dictionary

bref_players_stats() Error: Each row of output must be identified by a unique combination of keys.

library(nbastatR)
bref_players_stats(seasons = 2017:2018, tables = c("advanced", "totals"))
parsed http://www.basketball-reference.com/leagues/NBA_2017_advanced.html
parsed http://www.basketball-reference.com/leagues/NBA_2018_advanced.html
parsed http://www.basketball-reference.com/leagues/NBA_2017_totals.html
parsed http://www.basketball-reference.com/leagues/NBA_2018_totals.html
Advanced
Error: Each row of output must be identified by a unique combination of keys.
Keys are shared for 176 rows:
* 21747, 21748 
* 21817, 21818
etc...

This is with version 0.1.150

Errors starting on 1/22/2020

Hi I started getting some errors while running certain functions yesterday and I was wondering if these are reproducible issues for anyone else. I tried reinstalling the package but it didn't seem to help. I listed the 4 functions i normally use below and the error i got with each of them.

schedule <- seasons_schedule(seasons=2020, season_type="Regular Season")
Error: Column dateGame is unknown

gameLogs <- game_logs(seasons=2020, league="NBA", result_types="player", season_types="Regular Season")
Error in curl::curl_fetch_memory(url, handle = handle) :
Operation was aborted by an application callback

teamStats <- bref_teams_stats(seasons = 2020)
Error in curl::curl_fetch_memory(url, handle = handle) :
Operation was aborted by an application callback

injuryDB <- bref_injuries()
Error in eval_tidy(pair$lhs, env = default_env) :
object 'slugPlayerBREF' not found

I did have some functions that still worked though:

nba_insider_salaries()
dictionary_bref_players()

Can´t install package

Dear all,

I´ve been trying to install but

install.packages("nbastatR")
Warning in install.packages :
package ‘nbastatR’ is not available (for R version 3.6.2)

Do you know what I have to do?

get_nba_teams() not found in standings()

> standings(seasons = 2018, season_types = "Regular Season", resolve_records = F, nest_data = F, return_message = T)
Getting 2017-18 Regular Season NBA standings data
Error in get_nba_teams() : could not find function "get_nba_teams"
In addition: Warning messages:
1: Unknown columns: `orderSort`, `namePlayerLastFirst`, `dateGameLastPlayed` 
2: Unknown columns: `idLeague` 

`digits` function cannot be found

Querying for synergy stats, getting error re "digits function"

iso_syntergy_stats <- get_nba_synergy_stats(table_name = "Isolation",
+                                             include_defense = T,
+                                             include_offense = T,
+                                             type_table = 'player')
Error: could not find function "digits"

Tried manually loading the packages one by one in the order in which you have them listed in the R sub, but to no avail. Thanks.

bref_teams_stats(seasons = 2019) not working

For some reason it's not working, anything that's not from bref seems to work fine though. Any ideas?

> bref_teams_stats(seasons = 2019) Parsing https://www.basketball-reference.com/leagues/NBA_2019.html Error: byrequired, because the data sources have no common variables Callrlang::last_error() to see a backtrace

> rlang::last_error() <error> message: byrequired, because the data sources have no common variables class: rlang_errorbacktrace: -nbastatR::bref_teams_stats(seasons = 2019) -dplyr::left_join(., df_urls) -dplyr:::common_by.NULL(by, x, y) -dplyr:::bad_args("by", "required, because the data sources have no common variables") -dplyr:::glubort(fmt_args(args), ..., .envir = .envir) Callsummary(rlang::last_error()) to see the full backtrace

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.