# Script to create the tidy_play_stats_row tibble that is used in
# the internal function `sum_play_stats`
library(tidyverse)
tidy_play_stats_row <-
as_tibble_row(
matrix(NA, ncol = length(pbp_stat_columns)),
.name_repair = "minimal"
) |>
set_names(pbp_stat_columns) |>
modify_at(indicator_stats, function(x) {
x <- 0
}) |>
modify_if(is.na, function(x) {
x <- NA_character_
}) |>
modify_at(c(
"air_yards",
"yards_after_catch",
"penalty_yards",
"kick_distance",
"fumble_recovery_1_yards",
"fumble_recovery_2_yards",
"rushing_yards",
"lateral_rushing_yards",
"passing_yards",
"receiving_yards",
"lateral_receiving_yards"
), as.integer)
tidy_play_stats_row <- nflfastR:::tidy_play_stats_row
scramble_fix <- readRDS("data-raw/scramble_fix.rds")
default_play <- readRDS("data-raw/pbp_defaultplay.rds")
usethis::use_data(
tidy_play_stats_row, scramble_fix, default_play,
internal = TRUE,
overwrite = TRUE
)
# stats character vectors -------------------------------------------------
pbp_stat_columns <-
c(
# "play_id",
"punt_blocked",
"first_down_rush",
"first_down_pass",
"first_down_penalty",
"third_down_converted",
"third_down_failed",
"fourth_down_converted",
"fourth_down_failed",
"incomplete_pass",
"interception",
"punt_inside_twenty",
"punt_in_endzone",
"punt_out_of_bounds",
"punt_downed",
"punt_fair_catch",
"kickoff_inside_twenty",
"kickoff_in_endzone",
"kickoff_out_of_bounds",
"kickoff_fair_catch",
"fumble_forced",
"fumble_not_forced",
"fumble_out_of_bounds",
"timeout",
"field_goal_missed",
"field_goal_made",
"field_goal_blocked",
"extra_point_good",
"extra_point_failed",
"extra_point_blocked",
"two_point_rush_good",
"two_point_rush_failed",
"two_point_pass_good",
"two_point_pass_failed",
"solo_tackle",
"safety",
"penalty",
"tackled_for_loss",
"extra_point_safety",
"two_point_rush_safety",
"two_point_pass_safety",
"kickoff_downed",
"two_point_pass_reception_good",
"two_point_pass_reception_failed",
"fumble_lost",
"own_kickoff_recovery",
"own_kickoff_recovery_td",
"qb_hit",
"extra_point_aborted",
"two_point_return",
"rush_attempt",
"pass_attempt",
"sack",
"touchdown",
"pass_touchdown",
"rush_touchdown",
"return_touchdown",
"extra_point_attempt",
"two_point_attempt",
"field_goal_attempt",
"kickoff_attempt",
"punt_attempt",
"fumble",
"complete_pass",
"assist_tackle",
"lateral_reception",
"lateral_rush",
"lateral_return",
"lateral_recovery",
"passer_player_id",
"passer_player_name",
"receiver_player_id",
"receiver_player_name",
"rusher_player_id",
"rusher_player_name",
"lateral_receiver_player_id",
"lateral_receiver_player_name",
"lateral_rusher_player_id",
"lateral_rusher_player_name",
"lateral_sack_player_id",
"lateral_sack_player_name",
"interception_player_id",
"interception_player_name",
"lateral_interception_player_id",
"lateral_interception_player_name",
"punt_returner_player_id",
"punt_returner_player_name",
"lateral_punt_returner_player_id",
"lateral_punt_returner_player_name",
"kickoff_returner_player_name",
"kickoff_returner_player_id",
"lateral_kickoff_returner_player_id",
"lateral_kickoff_returner_player_name",
"punter_player_id",
"punter_player_name",
"kicker_player_name",
"kicker_player_id",
"own_kickoff_recovery_player_id",
"own_kickoff_recovery_player_name",
"blocked_player_id",
"blocked_player_name",
"tackle_for_loss_1_player_id",
"tackle_for_loss_1_player_name",
"tackle_for_loss_2_player_id",
"tackle_for_loss_2_player_name",
"qb_hit_1_player_id",
"qb_hit_1_player_name",
"qb_hit_2_player_id",
"qb_hit_2_player_name",
"forced_fumble_player_1_team",
"forced_fumble_player_1_player_id",
"forced_fumble_player_1_player_name",
"forced_fumble_player_2_team",
"forced_fumble_player_2_player_id",
"forced_fumble_player_2_player_name",
"solo_tackle_1_team",
"solo_tackle_2_team",
"solo_tackle_1_player_id",
"solo_tackle_2_player_id",
"solo_tackle_1_player_name",
"solo_tackle_2_player_name",
"assist_tackle_1_player_id",
"assist_tackle_1_player_name",
"assist_tackle_1_team",
"assist_tackle_2_player_id",
"assist_tackle_2_player_name",
"assist_tackle_2_team",
"assist_tackle_3_player_id",
"assist_tackle_3_player_name",
"assist_tackle_3_team",
"assist_tackle_4_player_id",
"assist_tackle_4_player_name",
"assist_tackle_4_team",
# new for stat ID 80 -> tackle_with_assist
"tackle_with_assist",
"tackle_with_assist_1_player_id",
"tackle_with_assist_1_player_name",
"tackle_with_assist_1_team",
"tackle_with_assist_2_player_id",
"tackle_with_assist_2_player_name",
"tackle_with_assist_2_team",
"pass_defense_1_player_id",
"pass_defense_1_player_name",
"pass_defense_2_player_id",
"pass_defense_2_player_name",
"fumbled_1_team",
"fumbled_1_player_id",
"fumbled_1_player_name",
"fumbled_2_player_id",
"fumbled_2_player_name",
"fumbled_2_team",
"fumble_recovery_1_team",
"fumble_recovery_1_yards",
"fumble_recovery_1_player_id",
"fumble_recovery_1_player_name",
"fumble_recovery_2_team",
"fumble_recovery_2_yards",
"fumble_recovery_2_player_id",
"fumble_recovery_2_player_name",
"td_team",
"return_team",
"timeout_team",
"yards_gained",
"return_yards",
"air_yards",
"yards_after_catch",
"penalty_team",
"penalty_player_id",
"penalty_player_name",
"penalty_yards",
"kick_distance",
"defensive_two_point_attempt",
"defensive_two_point_conv",
"defensive_extra_point_attempt",
"defensive_extra_point_conv",
"penalty_fix",
"return_penalty_fix",
#new in nflfastR v4.0
"rushing_yards",
"lateral_rushing_yards",
"passing_yards",
"receiving_yards",
"lateral_receiving_yards",
# new in nflfastR v4.1
"td_player_id",
"td_player_name",
"sack_player_id",
"sack_player_name",
"half_sack_1_player_id",
"half_sack_1_player_name",
"half_sack_2_player_id",
"half_sack_2_player_name",
# new in nflfastR > v4.1
"safety_player_name",
"safety_player_id"
)
indicator_stats <- c(
"punt_blocked",
"first_down_rush",
"first_down_pass",
"first_down_penalty",
"third_down_converted",
"third_down_failed",
"fourth_down_converted",
"fourth_down_failed",
"incomplete_pass",
"interception",
"punt_inside_twenty",
"punt_in_endzone",
"punt_out_of_bounds",
"punt_downed",
"punt_fair_catch",
"kickoff_inside_twenty",
"kickoff_in_endzone",
"kickoff_out_of_bounds",
"kickoff_fair_catch",
"fumble_forced",
"fumble_not_forced",
"fumble_out_of_bounds",
"timeout",
"field_goal_missed",
"field_goal_made",
"field_goal_blocked",
"extra_point_good",
"extra_point_failed",
"extra_point_blocked",
"two_point_rush_good",
"two_point_rush_failed",
"two_point_pass_good",
"two_point_pass_failed",
"solo_tackle",
"safety",
"penalty",
"tackled_for_loss",
"extra_point_safety",
"two_point_rush_safety",
"two_point_pass_safety",
"kickoff_downed",
"two_point_pass_reception_good",
"two_point_pass_reception_failed",
"fumble_lost",
"own_kickoff_recovery",
"own_kickoff_recovery_td",
"qb_hit",
"extra_point_aborted",
"two_point_return",
"defensive_two_point_attempt",
"defensive_two_point_conv",
"defensive_extra_point_attempt",
"defensive_extra_point_conv",
"rush_attempt",
"pass_attempt",
"sack",
"touchdown",
"pass_touchdown",
"rush_touchdown",
"return_touchdown",
"extra_point_attempt",
"two_point_attempt",
"field_goal_attempt",
"kickoff_attempt",
"punt_attempt",
"fumble",
"complete_pass",
"assist_tackle",
# new for stat ID 80 -> tackle_with_assist
"tackle_with_assist",
"lateral_reception",
"lateral_rush",
"lateral_return",
"lateral_recovery",
"penalty_fix",
"yards_gained",
"return_yards",
"return_penalty_fix"
)
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.