This report will show how to use some of the core features of the nflScrapR package. The package was created to connect with NFL JSON API and pull NFL data for analysis from NFL.com.
library(nflscrapR)
## Loading required package: nnet
## Loading required package: magrittr
## Warning: package 'magrittr' was built under R version 3.5.3
I have loaded in the nflscrapR package and will also load in the tidyverse for manipulations and visualizations.
Below I will use the scrape_season_play_by_play function to pull in all play by play data from the 2018 regular season.
# season_2018 <- scrape_season_play_by_play(2018, type = "reg")
As you can see below in the dataframe we have all of the data from the 2018 season which can be manipulated and changed in a variety of ways.
## Observations: 45,144
## Variables: 104
## $ X <int> 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11,...
## $ Date <fct> 2018-09-06, 2018-09-06, 2018-09-06...
## $ GameID <int> 2018090600, 2018090600, 2018090600...
## $ play_id <int> 37, 52, 75, 104, 125, 146, 168, 19...
## $ Drive <int> 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1...
## $ qtr <int> 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1...
## $ down <int> NA, 1, 1, 2, 1, 1, 2, 3, 1, 2, 3, ...
## $ time <fct> 15:00, 15:00, 15:00, 14:22, 13:46,...
## $ TimeUnder <int> 15, 15, 15, 15, 14, 14, 14, 14, 13...
## $ TimeSecs <int> 3600, 3600, 3600, 3562, 3526, 3490...
## $ PlayTimeDiff <int> 0, 0, 0, 38, 36, 36, 5, 4, 46, 34,...
## $ SideofField <fct> PHI, ATL, ATL, ATL, ATL, PHI, PHI,...
## $ yrdln <int> 35, 25, 20, 30, 41, 39, 39, 39, 6,...
## $ yrdline100 <int> 35, 75, 80, 70, 59, 39, 39, 39, 6,...
## $ ydstogo <int> 0, 10, 15, 5, 10, 10, 10, 10, 6, 1...
## $ ydsnet <int> 73, 73, 73, 73, 73, 73, 73, 73, 73...
## $ GoalToGo <int> 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1...
## $ FirstDown <int> NA, 1, 0, 1, 1, 0, 0, 1, 0, 0, 0, ...
## $ posteam <fct> ATL, ATL, ATL, ATL, ATL, ATL, ATL,...
## $ DefensiveTeam <fct> PHI, PHI, PHI, PHI, PHI, PHI, PHI,...
## $ desc <fct> "J.Elliott kicks 65 yards from PHI...
## $ PlayAttempted <int> 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1...
## $ Yards.Gained <int> 0, 0, 10, 11, 20, 0, 0, 33, 5, 0, ...
## $ sp <int> 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0...
## $ Touchdown <int> 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0...
## $ ExPointResult <fct> NA, NA, NA, NA, NA, NA, NA, NA, NA...
## $ TwoPointConv <fct> NA, NA, NA, NA, NA, NA, NA, NA, NA...
## $ DefTwoPoint <fct> NA, NA, NA, NA, NA, NA, NA, NA, NA...
## $ Safety <int> 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0...
## $ Onsidekick <int> 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0...
## $ PuntResult <fct> NA, NA, NA, NA, NA, NA, NA, NA, NA...
## $ PlayType <fct> Kickoff, No Play, Pass, Run, Run, ...
## $ Passer <fct> NA, NA, M.Ryan, NA, NA, M.Ryan, M....
## $ Passer_ID <fct> None, None, 00-0026143, None, None...
## $ PassAttempt <int> 0, 0, 1, 0, 0, 1, 1, 1, 0, 0, 1, 0...
## $ PassOutcome <fct> NA, NA, Complete, NA, NA, Incomple...
## $ PassLength <fct> NA, NA, Short, NA, NA, Short, Shor...
## $ AirYards <int> 0, 0, 8, 0, 0, 4, -3, 24, 0, 0, 1,...
## $ YardsAfterCatch <int> 0, 0, 2, 0, 0, 0, 0, 9, 0, 0, 0, 0...
## $ QBHit <int> 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0...
## $ PassLocation <fct> NA, NA, right, NA, NA, right, left...
## $ InterceptionThrown <int> 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0...
## $ Interceptor <fct> NA, NA, NA, NA, NA, NA, NA, NA, NA...
## $ Rusher <fct> NA, NA, NA, J.Jones, D.Freeman, NA...
## $ Rusher_ID <fct> None, None, None, 00-0027944, 00-0...
## $ RushAttempt <int> 0, 0, 0, 1, 1, 0, 0, 0, 1, 1, 0, 1...
## $ RunLocation <fct> NA, NA, NA, left, right, NA, NA, N...
## $ RunGap <fct> NA, NA, NA, end, end, NA, NA, NA, ...
## $ Receiver <fct> NA, NA, J.Jones, NA, NA, C.Ridley,...
## $ Receiver_ID <fct> None, None, 00-0027944, None, None...
## $ Reception <int> 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0...
## $ ReturnResult <fct> Touchback, NA, NA, NA, NA, NA, NA,...
## $ Returner <fct> NA, NA, NA, NA, NA, NA, NA, NA, NA...
## $ BlockingPlayer <fct> NA, NA, NA, NA, NA, NA, NA, NA, NA...
## $ Tackler1 <fct> NA, NA, M.Jenkins, D.Barnett, M.Je...
## $ Tackler2 <fct> NA, NA, NA, NA, NA, NA, NA, NA, S....
## $ FieldGoalResult <fct> NA, NA, NA, NA, NA, NA, NA, NA, NA...
## $ FieldGoalDistance <int> NA, NA, NA, NA, NA, NA, NA, NA, NA...
## $ Fumble <int> 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0...
## $ RecFumbTeam <fct> NA, NA, NA, NA, NA, NA, NA, NA, NA...
## $ RecFumbPlayer <fct> NA, NA, NA, NA, NA, NA, NA, NA, NA...
## $ Sack <int> 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0...
## $ Challenge.Replay <int> 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0...
## $ ChalReplayResult <fct> NA, NA, NA, NA, NA, NA, NA, NA, NA...
## $ Accepted.Penalty <int> 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0...
## $ PenalizedTeam <fct> NA, ATL, NA, NA, NA, NA, NA, NA, N...
## $ PenaltyType <fct> NA, False Start, NA, NA, NA, NA, N...
## $ PenalizedPlayer <fct> NA, L.Paulsen, NA, NA, NA, NA, NA,...
## $ Penalty.Yards <int> 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0...
## $ PosTeamScore <int> 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0...
## $ DefTeamScore <int> 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0...
## $ ScoreDiff <int> 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0...
## $ AbsScoreDiff <int> 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0...
## $ HomeTeam <fct> PHI, PHI, PHI, PHI, PHI, PHI, PHI,...
## $ AwayTeam <fct> ATL, ATL, ATL, ATL, ATL, ATL, ATL,...
## $ Timeout_Indicator <int> 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0...
## $ Timeout_Team <fct> None, None, None, None, None, None...
## $ posteam_timeouts_pre <int> 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3...
## $ HomeTimeouts_Remaining_Pre <int> 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3...
## $ AwayTimeouts_Remaining_Pre <int> 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3...
## $ HomeTimeouts_Remaining_Post <int> 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3...
## $ AwayTimeouts_Remaining_Post <int> 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3...
## $ No_Score_Prob <dbl> 0.0013736796, 0.0013736796, 0.0014...
## $ Opp_Field_Goal_Prob <dbl> 0.16263151, 0.16263151, 0.18566418...
## $ Opp_Safety_Prob <dbl> 4.440726e-03, 4.440726e-03, 6.9365...
## $ Opp_Touchdown_Prob <dbl> 0.25417863, 0.25417863, 0.29029674...
## $ Field_Goal_Prob <dbl> 0.23308117, 0.23308117, 0.22343543...
## $ Safety_Prob <dbl> 0.003655713, 0.003655713, 0.003893...
## $ Touchdown_Prob <dbl> 0.3406386, 0.3406386, 0.2882984, 0...
## $ ExPoint_Prob <dbl> 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0...
## $ TwoPoint_Prob <dbl> 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0...
## $ ExpPts <dbl> 0.81499848, 0.81499848, 0.09323881...
## $ EPA <dbl> 0.00000000, -0.72175967, 0.8183435...
## $ airEPA <dbl> NA, NA, 0.43551871, NA, NA, -0.111...
## $ yacEPA <dbl> NA, NA, 0.3828248, NA, NA, -0.4103...
## $ Home_WP_pre <dbl> 0.4999932, 0.4999932, 0.5210091, 0...
## $ Away_WP_pre <dbl> 0.5000068, 0.5000068, 0.4789909, 0...
## $ Home_WP_post <dbl> 0.4999932, 0.5210091, 0.4949000, 0...
## $ Away_WP_post <dbl> 0.5000068, 0.4789909, 0.5051000, 0...
## $ Win_Prob <dbl> 0.5000068, 0.5000068, 0.4789909, 0...
## $ WPA <dbl> 0.0000000000, -0.0210159442, 0.026...
## $ airWPA <dbl> NA, NA, 0.0129923050, NA, NA, -0.0...
## $ yacWPA <dbl> NA, NA, 0.01311682, NA, NA, -0.013...
## $ Season <int> 2018, 2018, 2018, 2018, 2018, 2018...