Need help with nflfastR?
Click the “chat” button below for chat support from the developer who created it, or find similar developers for support.

About the developer

mrcaseb
165 Stars 26 Forks Other 405 Commits 9 Opened issues

Description

A Set of Functions to Efficiently Scrape NFL Play by Play Data

Services available

!
?

Need anything else?

Contributors list

# 429,033
R
Android
PWA
shiny
1 commit

nflfastR

CRAN
status CRAN
downloads Travis build
status R build
status Discord
Chat Twitter
Follow <!-- GitHub release (latest by date) --> <!-- badges: end -->

nflfastR
is a set of functions to efficiently scrape NFL play-by-play data.
nflfastR
expands upon the features of nflscrapR:
  • The package contains NFL play-by-play data back to 1999
  • As suggested by the package name, it obtains games much faster
  • Includes completion probability (
    cp
    ), completion percentage over expected (
    cpoe
    ), and expected yards after the catch (
    xyac_epa
    and
    xyac_mean_yardage
    ) in play-by-play going back to 2006
  • Includes drive information, including drive starting position and drive result
  • Includes series information, including series number and series success
  • Hosts a repository of play-by-play data going back to 1999 for very quick access
  • Features models for Expected Points, Win Probability, Completion Probability, and Yards After the Catch (see section below)
  • Includes a function
    update_db()
    that creates and updates a database

We owe a debt of gratitude to the original

nflscrapR
team, Maksim Horowitz, Ronald Yurko, and Samuel Ventura, without whose contributions and inspiration this package would not exist.

Installation

The easiest way to get nflfastR is to install it from CRAN with:

install.packages("nflfastR")

To get a bug fix or to use a feature from the development version, you can install the development version of nflfastR from GitHub with:

if (!require("remotes")) install.packages("remotes")
remotes::install_github("mrcaseb/nflfastR")

Usage

We have provided some application examples in the Getting Started article. However, these require a basic knowledge of R. For this reason we have the nflfastR beginner’s guide, which we recommend to all those who are looking for an introduction to nflfastR with R.

You can find column names and descriptions in the Field Descriptions article, or by accessing the

field_descriptions
dataframe from the package.

Data repository

Even though

nflfastR
is very fast, for historical games we recommend downloading the data from here. These data sets include play-by-play data of complete seasons going back to 1999 and we will update them in 2020 once the season starts. The files contain both regular season and postseason data, and one can use game_type or week to figure out which games occurred in the postseason. Data are available as .csv.gz, .parquet, or .rds.

nflfastR models

nflfastR
uses its own models for Expected Points, Win Probability, Completion Probability, and Expected Yards After the Catch. To read about the models, please see this post on Open Source Football. For a more detailed description of the motivation for Expected Points models, we highly recommend this paper from the nflscrapR team located here.

Here is a visualization of the Expected Points model by down and yardline.

Here is a visualization of the Completion Probability model by air yards and pass direction.

nflfastR
includes two win probability models: one with and one without incorporating the pre-game spread.

Special thanks

We use cookies. If you continue to browse the site, you agree to the use of cookies. For more information on our use of cookies please see our Privacy Policy.