From d5b52b8494259e60f6e15f991091d8b723d613af Mon Sep 17 00:00:00 2001 From: mrcaseb Date: Sat, 25 Jul 2020 21:20:52 +0200 Subject: [PATCH] Push nflfastR 2.1.2 --- DESCRIPTION | 4 +- NAMESPACE | 2 +- NEWS.md | 13 ++++++ R/ep_wp_calculators.R | 8 ++-- R/helper_add_ep_wp.R | 52 ++++++++++++++++++++--- R/helper_add_game_data.R | 2 +- R/helper_add_nflscrapr_mutations.R | 16 +++---- R/helper_additional_functions.R | 10 +++-- R/helper_scrape_gc.R | 6 ++- R/helper_scrape_nfl.R | 20 --------- R/helper_tidy_play_stats.R | 2 + R/helper_variable_selector.R | 10 ++--- R/top-level_scraper.R | 11 +++-- data/teams_colors_logos.rda | Bin 2337 -> 2357 bytes man/clean_pbp.Rd | 1 + man/fast_scraper.Rd | 11 +++-- nflfastR_2.1.1.pdf => nflfastR_2.1.2.pdf | Bin 117802 -> 118337 bytes vignettes/beginners_guide.Rmd | 2 +- vignettes/examples.Rmd | 2 +- 19 files changed, 113 insertions(+), 59 deletions(-) rename nflfastR_2.1.1.pdf => nflfastR_2.1.2.pdf (64%) diff --git a/DESCRIPTION b/DESCRIPTION index a2849710..9c452857 100644 --- a/DESCRIPTION +++ b/DESCRIPTION @@ -1,7 +1,7 @@ Type: Package Package: nflfastR Title: Functions to Efficiently Scrape NFL Play by Play Data -Version: 2.1.1 +Version: 2.1.2 Authors@R: c(person(given = "Sebastian", family = "Carl", @@ -48,7 +48,7 @@ Imports: stringr (>= 1.3.0), tibble (>= 3.0), tidyr (>= 1.0.0), - tidyselect (>= 1.0.0), + tidyselect (>= 1.1.0), xgboost (>= 1.1) Suggests: DBI, diff --git a/NAMESPACE b/NAMESPACE index 6a04b46b..4761cbbd 100644 --- a/NAMESPACE +++ b/NAMESPACE @@ -53,5 +53,5 @@ importFrom(tibble,tibble) importFrom(tidyr,replace_na) importFrom(tidyr,unnest) importFrom(tidyr,unnest_wider) +importFrom(tidyselect,any_of) importFrom(tidyselect,matches) -importFrom(tidyselect,one_of) diff --git a/NEWS.md b/NEWS.md index 50ba08dd..6bee1a45 100644 --- a/NEWS.md +++ b/NEWS.md @@ -1,3 +1,16 @@ +# nflfastR 2.1.2 + +* Added the following columns that are available 2011 and later: `special_teams_play`, `st_play_type`, `time_of_day`, and `order_sequence` +* Added `old_game_id` column (useful for merging to external data that still uses this ID: format is YYYYMMDDxx) +* The `clean_pbp()` function now adds an `aborted_play` column +* Fixed a bug where pass plays with a penalty at end of play were classified as `play_type` = `no_play` rather than `pass` +* Fixed bug where EPA on defensive 2 point return was -0.95 instead of -2.95 +* Fixed some remaining failed challenge plays that incorrectly had 0 for EPA +* Updated the included dataframe `teams_colors_logos` for the interim name of +the 'Washington Football Team' and the corresponding logo urls. +* Some internal code improvements causing the required `tidyselect` version +to be >= 1.1.0 + # nflfastR 2.1.1 ### Functions diff --git a/R/ep_wp_calculators.R b/R/ep_wp_calculators.R index 84923f13..1fbeb09c 100644 --- a/R/ep_wp_calculators.R +++ b/R/ep_wp_calculators.R @@ -35,14 +35,14 @@ #' } #' @importFrom rlang .data #' @importFrom dplyr select mutate bind_cols -#' @importFrom tidyselect one_of +#' @importFrom tidyselect any_of #' @importFrom stats predict #' @export calculate_expected_points <- function(pbp_data) { suppressWarnings( model_data <- pbp_data %>% # drop existing values of ep and the probs before making new ones - dplyr::select(-one_of(drop.cols)) %>% + dplyr::select(-any_of(drop.cols)) %>% make_model_mutations() %>% ep_model_select() ) @@ -114,7 +114,7 @@ drop.cols <- c( #' } #' @importFrom rlang .data #' @importFrom dplyr select mutate if_else rename bind_cols -#' @importFrom tidyselect one_of +#' @importFrom tidyselect any_of #' @importFrom stats predict #' @importFrom tibble as_tibble #' @export @@ -122,7 +122,7 @@ calculate_win_probability <- function(pbp_data) { suppressWarnings( model_data <- pbp_data %>% # drop existing values of ep and the probs before making new ones - dplyr::select(-one_of(drop.cols.wp)) %>% + dplyr::select(-any_of(drop.cols.wp)) %>% dplyr::mutate( home = dplyr::if_else(.data$posteam == .data$home_team, 1, 0), ExpScoreDiff = .data$ep + .data$score_differential, diff --git a/R/helper_add_ep_wp.R b/R/helper_add_ep_wp.R index 6bb12c18..11a4537d 100644 --- a/R/helper_add_ep_wp.R +++ b/R/helper_add_ep_wp.R @@ -338,7 +338,7 @@ add_ep_variables <- function(pbp_data) { base_ep_preds$TwoPoint_Prob <- 0 # Find the indices for these types of plays: - extrapoint_i <- which(pbp_data$play_type == "extra_point") + extrapoint_i <- which(pbp_data$play_type == "extra_point" & pbp_data$play_type_nfl != "PAT2") twopoint_i <- which(pbp_data$two_point_attempt == 1) #new: special case for PAT or kickoff with penalty @@ -364,8 +364,22 @@ add_ep_variables <- function(pbp_data) { # ---------------------------------------------------------------------------------- # Insert NAs for timeouts and end of play rows: - missing_i <- which((pbp_data$timeout == 1 & pbp_data$play_type == "no_play" & - !stringr::str_detect(pbp_data$desc, ' pass ')) | is.na(pbp_data$play_type)) + missing_i <- which( + (pbp_data$timeout == 1 & + pbp_data$play_type == "no_play" & + !stringr::str_detect(pbp_data$desc, ' pass ') & + !stringr::str_detect(pbp_data$desc, ' sacked ') & + !stringr::str_detect(pbp_data$desc, ' scramble ') & + !stringr::str_detect(pbp_data$desc, ' punts ') & + !stringr::str_detect(pbp_data$desc, ' up the middle ') & + !stringr::str_detect(pbp_data$desc, ' left end ') & + !stringr::str_detect(pbp_data$desc, ' left guard ') & + !stringr::str_detect(pbp_data$desc, ' left tackle ') & + !stringr::str_detect(pbp_data$desc, ' right end ') & + !stringr::str_detect(pbp_data$desc, ' right guard ') & + !stringr::str_detect(pbp_data$desc, ' right tackle ') + ) | + is.na(pbp_data$play_type)) # Now update the probabilities for missing and PATs: base_ep_preds$Field_Goal[c(missing_i, extrapoint_i, twopoint_i, st_penalty_i)] <- 0 @@ -444,6 +458,10 @@ add_ep_variables <- function(pbp_data) { .data$two_point_pass_failed == 1 | .data$two_point_pass_reception_failed == 1)), 0 - .data$ExpPts, .data$EPA), + # Opponent scores defensive 2 point: + EPA = dplyr::if_else( + .data$defensive_two_point_conv == 1, -2 - .data$ExpPts, .data$EPA + ), # Opponent safety: EPA = dplyr::if_else(is.na(.data$td_team) & .data$field_goal_made == 0 & .data$extra_point_good == 0 & @@ -599,9 +617,33 @@ add_ep_variables <- function(pbp_data) { extra_point_prob = "ExPoint_Prob", two_point_conversion_prob = "TwoPoint_Prob") %>% # Create columns with cumulative epa totals for both teams: - dplyr::mutate(ep = dplyr::if_else(.data$timeout == 1 & .data$play_type == "no_play" & !stringr::str_detect(.data$desc, ' pass '), + dplyr::mutate(ep = dplyr::if_else(.data$timeout == 1 & .data$play_type == "no_play" & + !stringr::str_detect(.data$desc, ' pass ') & + !stringr::str_detect(.data$desc, ' sacked ') & + !stringr::str_detect(.data$desc, ' scramble ') & + !stringr::str_detect(.data$desc, ' punts ') & + !stringr::str_detect(.data$desc, ' up the middle ') & + !stringr::str_detect(.data$desc, ' left end ') & + !stringr::str_detect(.data$desc, ' left guard ') & + !stringr::str_detect(.data$desc, ' left tackle ') & + !stringr::str_detect(.data$desc, ' right end ') & + !stringr::str_detect(.data$desc, ' right guard ') & + !stringr::str_detect(.data$desc, ' right tackle ') + , dplyr::lead(.data$ep), .data$ep), - epa = dplyr::if_else(.data$timeout == 1 & .data$play_type == "no_play" & !stringr::str_detect(.data$desc, ' pass '), + epa = dplyr::if_else(.data$timeout == 1 & .data$play_type == "no_play" & + !stringr::str_detect(.data$desc, ' pass ') & + !stringr::str_detect(.data$desc, ' sacked ') & + !stringr::str_detect(.data$desc, ' scramble ') & + !stringr::str_detect(.data$desc, ' punts ') & + !stringr::str_detect(.data$desc, ' up the middle ') & + !stringr::str_detect(.data$desc, ' left end ') & + !stringr::str_detect(.data$desc, ' left guard ') & + !stringr::str_detect(.data$desc, ' left tackle ') & + !stringr::str_detect(.data$desc, ' right end ') & + !stringr::str_detect(.data$desc, ' right guard ') & + !stringr::str_detect(.data$desc, ' right tackle ') + , 0, .data$epa), # Change epa for plays occurring at end of half with no scoring # plays to be just the difference between 0 and starting ep: diff --git a/R/helper_add_game_data.R b/R/helper_add_game_data.R index 2c0b26c8..1d83c9d2 100644 --- a/R/helper_add_game_data.R +++ b/R/helper_add_game_data.R @@ -25,7 +25,7 @@ add_game_data <- function(pbp) { dplyr::left_join( readRDS(url(url)) %>% dplyr::select( - "game_id", "away_score", "home_score", "location", "result", "total", + "game_id", "old_game_id", "away_score", "home_score", "location", "result", "total", "spread_line", "total_line", "div_game", "roof", "surface", "temp", "wind", "home_coach", "away_coach", "stadium", "stadium_id", "gameday" ) %>% diff --git a/R/helper_add_nflscrapr_mutations.R b/R/helper_add_nflscrapr_mutations.R index 9053e892..60073175 100644 --- a/R/helper_add_nflscrapr_mutations.R +++ b/R/helper_add_nflscrapr_mutations.R @@ -293,23 +293,23 @@ add_nflscrapr_mutations <- function(pbp) { ), play_type = dplyr::if_else( (.data$penalty == 0 | - (.data$penalty == 1 & .data$penalty_fix == 1)) & .data$qb_spike == 1, - "qb_spike", .data$play_type + (.data$penalty == 1 & .data$penalty_fix == 1)) & .data$field_goal_attempt == 1, + "field_goal", .data$play_type ), play_type = dplyr::if_else( (.data$penalty == 0 | - (.data$penalty == 1 & .data$penalty_fix == 1)) & .data$qb_kneel == 1, - "qb_kneel", .data$play_type + (.data$penalty == 1 & .data$penalty_fix == 1)) & .data$extra_point_attempt == 1, + "extra_point", .data$play_type ), play_type = dplyr::if_else( (.data$penalty == 0 | - (.data$penalty == 1 & .data$penalty_fix == 1)) & .data$field_goal_attempt == 1, - "field_goal", .data$play_type + (.data$penalty == 1 & .data$penalty_fix == 1)) & .data$qb_spike == 1, + "qb_spike", .data$play_type ), play_type = dplyr::if_else( (.data$penalty == 0 | - (.data$penalty == 1 & .data$penalty_fix == 1)) & .data$extra_point_attempt == 1, - "extra_point", .data$play_type + (.data$penalty == 1 & .data$penalty_fix == 1)) & .data$qb_kneel == 1, + "qb_kneel", .data$play_type ), # Indicator for QB dropbacks (exclude spikes and kneels): qb_dropback = dplyr::if_else( diff --git a/R/helper_additional_functions.R b/R/helper_additional_functions.R index 0917ea7c..bb174bf3 100644 --- a/R/helper_additional_functions.R +++ b/R/helper_additional_functions.R @@ -26,6 +26,7 @@ #' \item{rush}{Binary indicator if the play was a rushing play.} #' \item{special}{Binary indicator if the play was a special teams play.} #' \item{first_down}{Binary indicator if the play ended in a first down.} +#' \item{aborted_play}{Binary indicator if the play description indicates "Aborted".} #' \item{play}{Binary indicator: 1 if the play was a 'normal' play (including penalties), 0 otherwise.} #' \item{passer_id}{ID of the player in the 'passer' column (NOTE: ids vary pre and post 2011)} #' \item{rusher_id}{ID of the player in the 'rusher' column (NOTE: ids vary pre and post 2011)} @@ -39,7 +40,7 @@ #' @importFrom stringr str_detect str_extract str_replace_all #' @importFrom glue glue #' @importFrom rlang .data -#' @importFrom tidyselect one_of +#' @importFrom tidyselect any_of clean_pbp <- function(pbp) { message('Cleaning up play-by-play. If you run this with a lot of seasons this could take a few minutes.') @@ -48,7 +49,7 @@ clean_pbp <- function(pbp) { legacy_id_map <- readRDS(url("https://github.com/guga31bb/nflfastR-data/blob/master/roster-data/legacy_id_map.rds?raw=true")) # drop existing values of clean_pbp - pbp <- pbp %>% dplyr::select(-tidyselect::one_of(drop.cols)) + pbp <- pbp %>% dplyr::select(-tidyselect::any_of(drop.cols)) r <- pbp %>% dplyr::mutate( @@ -129,6 +130,7 @@ clean_pbp <- function(pbp) { TRUE ~ receiver ), first_down = dplyr::if_else(.data$first_down_rush == 1 | .data$first_down_pass == 1 | .data$first_down_penalty == 1, 1, 0), + aborted_play = dplyr::if_else(stringr::str_detect(.data$desc, 'Aborted'), 1, 0), # easy filter: play is 1 if a "special teams" play, or 0 otherwise # with thanks to Lee Sharpe for the code special = dplyr::if_else(.data$play_type %in% @@ -257,11 +259,11 @@ update_ids <- function(var, id_map) { #' @export #' @import dplyr #' @importFrom rlang .data -#' @importFrom tidyselect one_of +#' @importFrom tidyselect any_of add_qb_epa <- function(d) { # drop existing values of clean_pbp - d <- d %>% dplyr::select(-tidyselect::one_of("qb_epa")) + d <- d %>% dplyr::select(-tidyselect::any_of("qb_epa")) fumbles_df <- d %>% dplyr::filter(.data$complete_pass == 1 & .data$fumble_lost == 1 & !is.na(.data$epa) & !is.na(.data$down)) %>% diff --git a/R/helper_scrape_gc.R b/R/helper_scrape_gc.R index 74d45786..bdc7fc84 100644 --- a/R/helper_scrape_gc.R +++ b/R/helper_scrape_gc.R @@ -228,7 +228,11 @@ get_pbp_gc <- function(gameId, dir = NULL) { play_type_nfl = NA_character_, drive_yards_penalized = NA_real_, end_clock_time = NA_character_, - end_yard_line = NA_character_ + end_yard_line = NA_character_, + order_sequence = NA_real_, + time_of_day = NA_character_, + special_teams_play = NA_real_, + st_play_type = NA_character_ ) %>% dplyr::group_by(.data$drive) %>% dplyr::mutate( diff --git a/R/helper_scrape_nfl.R b/R/helper_scrape_nfl.R index 5facbff1..4cf5ec06 100644 --- a/R/helper_scrape_nfl.R +++ b/R/helper_scrape_nfl.R @@ -264,26 +264,6 @@ get_pbp_nfl <- function(id, dir = NULL) { } -# otherwise scraping a lot of seasons breaks -save_cols <- c( - "game_id", "nfl_api_id", "home_team", "away_team", - "season", "game_month", - "game_year", "time", "down", "drive_net_yards", - "drive", "first_down", "goal_to_go", "order_sequence", - "play_description", "play_review_status", - "play_type_nfl", "quarter", "sp", - "scoring_play_type", "special_teams_play", - "time_of_day", - "yardline", "yards", - "yards_to_go", "latest_play", - "posteam", - "scoring_team_id", - "scoring_team_abbreviation", "scoring_team_nick_name", - "ydsnet", "drive_yards_penalized", - "posteam_id", "yardline_side", - "yardline_number", "quarter_end" -) - # hard coded 2020 regular season game ids to make sure the output of the # schedule scraper is not named 'invalid' if the source file not yet exists valid_games <- c( diff --git a/R/helper_tidy_play_stats.R b/R/helper_tidy_play_stats.R index 7526c69d..aa92da49 100644 --- a/R/helper_tidy_play_stats.R +++ b/R/helper_tidy_play_stats.R @@ -96,6 +96,7 @@ sum_play_stats <- function(play_Id, stats) { row$pass_attempt <- 1 row$passer_player_id <- play_stats$player.esbId[index] row$passer_player_name <- play_stats$player.displayName[index] + row$penalty_fix <- 1 } else if (stat_id == 15) { row$pass_attempt <- 1 row$complete_pass <- 1 @@ -118,6 +119,7 @@ sum_play_stats <- function(play_Id, stats) { row$pass_attempt <- 1 row$passer_player_id <- play_stats$player.esbId[index] row$passer_player_name <- play_stats$player.displayName[index] + row$penalty_fix <- 1 } else if (stat_id == 20) { row$pass_attempt <- 1 row$sack <- 1 diff --git a/R/helper_variable_selector.R b/R/helper_variable_selector.R index bba01447..a5abbe7d 100644 --- a/R/helper_variable_selector.R +++ b/R/helper_variable_selector.R @@ -5,14 +5,14 @@ ################################################################################ #' @import dplyr -#' @importFrom tidyselect one_of +#' @importFrom tidyselect any_of select_variables <- function(pbp) { suppressWarnings( out <- pbp %>% dplyr::select( - tidyselect::one_of( + tidyselect::any_of( c(nflscrapr_cols, new_cols, api_cols) ) ) @@ -27,7 +27,7 @@ new_cols <- c("season", "cp", "cpoe", "series", "series_success") # original nflscrapr columns nflscrapr_cols <- c( - "play_id", "game_id", "home_team", "away_team", + "play_id", "game_id", "old_game_id", "home_team", "away_team", #added these to new gc scraper "season_type", "week", "posteam", "posteam_type", "defteam", "side_of_field", "yardline_100", @@ -124,10 +124,10 @@ rs_cols <- c( # these are columns in the new API that aren't in nflscrapR api_cols <- c( - "start_time", + "order_sequence", "start_time", "time_of_day", "stadium", "weather", "nfl_api_id", "play_clock", "play_deleted", - "play_type_nfl", + "play_type_nfl", "special_teams_play", "st_play_type", "end_clock_time", "end_yard_line", "drive_real_start_time", diff --git a/R/top-level_scraper.R b/R/top-level_scraper.R index 67d02d4b..094045a9 100644 --- a/R/top-level_scraper.R +++ b/R/top-level_scraper.R @@ -24,6 +24,7 @@ #' \describe{ #' \item{play_id}{Numeric play id that when used with game_id and drive provides the unique identifier for a single play.} #' \item{game_id}{Ten digit identifier for NFL game.} +#' \item{old_game_id}{Legacy NFL game ID.} #' \item{home_team}{String abbreviation for the home team.} #' \item{away_team}{String abbreviation for the away team.} #' \item{season_type}{'REG' or 'POST' indicating if the game belongs to regular or post season.} @@ -69,7 +70,7 @@ #' \item{two_point_conv_result}{String indicator for result of two point conversion attempt: success, failure, safety (touchback in defensive endzone is 1 point apparently), or return.} #' \item{home_timeouts_remaining}{Numeric timeouts remaining in the half for the home team.} #' \item{away_timeouts_remaining}{Numeric timeouts remaining in the half for the away team.} -#' \item{timeout}{Binary indicator for whether or not a timeout was called.} +#' \item{timeout}{Binary indicator for whether or not a timeout was called by either team.} #' \item{timeout_team}{String abbreviation for which team called the timeout.} #' \item{td_team}{String abbreviation for which team scored the touchdown.} #' \item{posteam_timeouts_remaining}{Number of timeouts remaining for the possession team.} @@ -116,8 +117,8 @@ #' \item{home_wp}{Estimated win probability for the home team.} #' \item{away_wp}{Estimated win probability for the away team.} #' \item{wpa}{Win probability added (WPA) for the posteam.} -#' \item{home_wp_post}{Estimated win probability for the home team at the start of the play.} -#' \item{away_wp_post}{Estimated win probability for the away team at the start of the play.} +#' \item{home_wp_post}{Estimated win probability for the home team at the end of the play.} +#' \item{away_wp_post}{Estimated win probability for the away team at the end of the play.} #' \item{vegas_wp}{Estimated win probabiity for the posteam given the current situation at the start of the given play, incorporating pre-game Vegas line.} #' \item{vegas_home_wp}{Estimated win probability for the home team incorporating pre-game Vegas line.} #' \item{total_home_rush_wpa}{Cumulative total rushing WPA for the home team in the game so far.} @@ -288,12 +289,16 @@ #' \item{series}{Starts at 1, each new first down increments, numbers shared across both teams NA: kickoffs, extra point/two point conversion attempts, non-plays, no posteam} #' \item{series_success}{1: scored touchdown, gained enough yards for first down 0: punt, interception, fumble lost, turnover on downs, FG attempt NA: series is NA, series contains QB spike/kneel} #' \item{start_time}{Kickoff time in eastern time zone.} +#' \item{order_sequence}{Column provided by NFL to fix out-of-order plays. Available 2011 and beyond.} +#' \item{time_of_day}{Time of day of play in UTC "HH:MM:SS" format. Available 2011 and beyond.} #' \item{stadium}{Game site name.} #' \item{weather}{String describing the weather including temperature, humidity and wind (direction and speed). Doesn't change during the game!} #' \item{nfl_api_id}{UUID of the game in the new NFL API.} #' \item{play_clock}{Time on the playclock when the ball was snapped.} #' \item{play_deleted}{Binary indicator for deleted plays.} #' \item{play_type_nfl}{Play type as listed in the NFL source. Slightly different to the regular play_type variable.} +#' \item{special_teams_play}{Binary indicator for whether play is special teams play from NFL source. Available 2011 and beyond.} +#' \item{st_play_type}{Type of special teams play from NFL source. Available 2011 and beyond.} #' \item{end_clock_time}{Game time at the end of a given play.} #' \item{end_yard_line}{String indicating the yardline at the end of the given play consisting of team half and yard line number.} #' \item{drive_real_start_time}{Local day time when the drive started (currently not used by the NFL and therefore mostly 'NA').} diff --git a/data/teams_colors_logos.rda b/data/teams_colors_logos.rda index b8b2bd88689d1a1510bd12678a844f7f686a4cf1..c8806506fbaf514aba14449a95f7ed67eff0a0b9 100644 GIT binary patch literal 2357 zcmV-53Ci{#iwFP!000001JznzbDYQ#S8PcuD`lVmCAK)}oZlvCDGLboczadwLq^(Z#_hb@$Wm z#>U3ujm`Y$7WuKU_2KI1wYjme`G^euKp0QR|1UF)rm5}5VVtCP7?0zW$iE_-T>Uxu z_m@)g@!;Z^l2@aO+#fLV!%;;J2N#rlOVx(Qr<5EWR^$O&;o$I;kyj=8=*@mL`S$EX zMIN6XROHFvQziOtSW%-v#U2fYjJ%-ykJaS+;{hWp{70vUlsc=}r@y^n)O7$m{(afGBHO1vOKVOlbN8e}1g zG9(?L(2b*N`uRQzvtSx0Sh_$rn9e`lpZh)vV`)DK=^8J{qH#!8mCngh6P!@#;UsX; zm`GzpCtnVO$PJ|%I!w}zKVvZ;6C-H)UK082Rh*D`7FP!+6&En_=C%I_k z#uV}ZXGt7n(kNiwym*sf97+4=mRRUsGXtN!jpu0=N75Dkf~fe*m6Akw=&3XCE_^tsb8Zwl?Krmhd3qSoYK|!`QZd5V`f>K z&WjO&_=v|SpA9_DmG=Rf2GT(s&L#o#{5^>@PGhpcAA{>48dL03ypRr~aS`ovlqEq- zy?mMT&XN!lhonmsM3nPW&iO4)uBA65Ky>;koj$=#_6%JYtJm#(bv_9~*BpsqL zageftEK8kvGM-46878i?;9jCgItVbyB{5K!7-bpR4f6j4Ew1TexyDg~NUo)BENK=O zs>^Io8pZRVz8hC)IzvU0?9W{nMVJG*!g&}|jHRm}W0~^jUr|b;J5DrfSM^Maz(*Rj5$M%)`mz&F5*`HtAssWMlx#SlD$?mrI8~I{8dA@FS}|x*CbC6 z=9!Qb5GuOt(xD?ehU2ygi(KF7E3hq*8v*VchS{d;sFtPkX>O>l-_EV4xo$$p4Sl!I zrRwV72sSG&^q}4UZewK^ zVv~!v@5&ChIVEMEf!!QuZ22Nx=$YIU&)^~1R*Ly+O6KJ)sEilw2R3h?wKlk&}&`9o9V4u*votW90F=bt5eYDTsx^GZ5r*RCvfB--5LgQO^dEE5y6@ zkXdUtWCf}^Y$V6G>bI_P>DNH0+b-;6-4&l4nf9ZqJJ5l?kQ~`0%Vy~>0L*7$jJ&-C zdG(rN^4YobsktHz^!}^IqVQ^1C+fIyZ9{N zV9h+zcQZN6wRf0!>w>BkV^^Oa9Ih-A+;#yD`)~KecH`-kY*uN24s>F`vgKnJpF0ik zJDD8t-#Y=Dz*GQhE7|4ORRg_U;vre)0nY-ob!9KV&+d=5G2q5j| zDZ^QCv#tdgUY$0hEnE&Y?c_1N z4zSB!9Rs$^0=JF-kRwh0THq8f?DE3Ft~!H_1Y0H3!Gb%=c@9zDZP?3(q!5A?0-Oc& zP8Re*e`!H}Sz<3cpm)XKF7`v7paj=pxOuO&6}86vK~C704s`_s{-ViVHjzd2RU#bz zKRRtTc`qbJ&?_yw>RdOBSRwL%SI#jg@8j&M5ig>)@*f;_hX z$Pe)}Tf4v_fFLODFN^n3cC{g*uaw~|_-k$fF<`M+>`jmpWO*@;#(N~-ASf`vi#CW%rRhW2nei(D@%90)+JS^VY-i2RT|6=Z;t zfb(b_#VqWmNL=WsIQKcl{=F4ndnmaEE=sz=x|5C(BH!E{6+_%j(d!yo4|g=x!x^V2 z-(PX;bOW5k^KObk|9@HL{~()XmZechrl! z85-S=yDEPEzI!q2THj_t_MP)I#i(0sQvW+2jI3jM%eofgMLJo&2-JRO^+^&h_98UJ zDH%K^{~rC5{P_Cy>%RrTtx70=jo7WUix&;#I7w|H7p*R7iiyCh^8@#~oY*ZUieH&6 zXa2}$U~@`sPE{B9uZpSMX`8-Tm8@rsm4``m%?(jnxwcsWq%-W=nG@Pxb>XyK8$BkY b$_Wo;XwOe_w>LKalmGiKRU1%-H!J`Em|L6k literal 2337 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 U^f)vL5(g^>2oVSrlNU$)A3#eUD*ylh delta 42064 zcmV)TK(W8UoCm6y2aqHKGdCcU(P$`tl~!ACn=ll9@2}u(iMBYlxlh`pbxo#JS=A-! zUbaaCVkj#CWSgz**U!X;mDC~W6HboL`7S;O1C7Lh#-|H-4TKU2$zc@md{vkCDB{SbXJzaxJg(~%Fe*8 zFc1vNQsksAS5jQ25y=@jVIK5QtLgJ%Bk^9#M?*JL?3RmQ58jRHnOkfi*+3PD;-^Elg&^mIrg zaxGw5-NC()d(WX^0sp@_EenMn6}y&DN24$FSg%7{&`~DI(w9}TB4t52d%0D%4g42S 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 filter(n_dropbacks > 100 & n_plays > 1000) ``` -Lots of new stuff here. First, we're grouping by `id` and `name` to make sure we're getting unique players; i.e., if two players have the same name (like Javorius Allen and Josh Allen both being J.Allen), we are also using their id to differntiate them. **Note that this use of id only works if you are not mixing data from before and after 2011: the IDs are different prior to 2011**. `qb_epa` is an `nflfastR` creation that is equal to EPA in all instances except for when a pass is completed and a fumble is lost, in which case a QB gets "credit" for the play up to the spot the fumble was lost (making EPA function like passing yards). The `last` part in the `summarize` comment gets the last team that a player was observed playing with. +Lots of new stuff here. First, we're grouping by `id` and `name` to make sure we're getting unique players; i.e., if two players have the same name (like Javorius Allen and Josh Allen both being J.Allen), we are also using their id to differntiate them. `qb_epa` is an `nflfastR` creation that is equal to EPA in all instances except for when a pass is completed and a fumble is lost, in which case a QB gets "credit" for the play up to the spot the fumble was lost (making EPA function like passing yards). The `last` part in the `summarize` comment gets the last team that a player was observed playing with. Because there's no way to join to rosters (yet?), my way of getting a dataset with only quarterbacks is to make sure they hit some number of dropbacks. In this case, filtering with `n_dropbacks > 100` makes sure we're only including quarterbacks. The `ungroup()` near the end is good practice after grouping to make sure you don't get weird behavior with the data you created down the line. diff --git a/vignettes/examples.Rmd b/vignettes/examples.Rmd index 460ff2a3..1ccc793b 100644 --- a/vignettes/examples.Rmd +++ b/vignettes/examples.Rmd @@ -314,4 +314,4 @@ For more details on using a database with `nflfastR`, see [Thomas Mock's life-ch This section used to contain an example of working with roster data. Unfortunately, we have not found a way to obtain roster data that can be joined to the new play by play, so for now, it is empty. We would like to be able to get position data but haven't yet. -The `clean_pbp()` function does a lot of work cleaning up player names and IDs for the purpose of joining them to roster data, but we do not have any roster data to join to. **Note that player IDs are inconsistent between the old (1999-2010) and new (2011 - present) data sources so use IDs with caution**. Unfortunately there is nothing we can do about this as the NFL changed their system for IDs in the underlying data. +The `clean_pbp()` function does a lot of work cleaning up player names and IDs for the purpose of joining them to roster data, but we do not have any roster data to join to. `clean_pbp()` does standardize player IDs so that they are unique for each player across seasons.