Brian Mochtyak

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...