fivethirtyeight

R package of data and code behind the stories and interactives at FiveThirtyEight

454
105
R

output: github_document

knitr::opts_chunk$set(
  collapse = TRUE,
  comment = "#>",
  fig.path = "README-"
)
library(fivethirtyeight)
library(dplyr)

fivethirtyeight

R-CMD-check
Lifecycle: stable
CRAN_Status_Badge
CRAN RStudio mirror downloads

An R package that provides access to the code and data sets published by FiveThirtyEight https://github.com/fivethirtyeight/data. Note that while we received guidance from editors at 538, this package is not officially published by 538.

Installation

Get the latest released version from CRAN:

install.packages("fivethirtyeight")

Or the development version from GitHub:

# If you haven't installed the remotes package yet, do so:
# install.packages("remotes")
remotes::install_github("rudeboybert/fivethirtyeight", build_vignettes = TRUE)

Usage

All data in the fivethirtyeight package are lazy-loaded, so you can access
any dataset without running data():

library(fivethirtyeight)

head(bechdel)
?bechdel

# If using RStudio:
View(bechdel)

To see a detailed list of all r nrow(data(package = "fivethirtyeight")[[3]]) - 1 datasets, including information on the corresponding articles published on FiveThirtyEight.com, click here.

Add-on Package

all_fivethirtyeightdata_datasets <- data(package = "fivethirtyeightdata")[["results"]] %>% 
  as_tibble() %>% 
  pull(Item) %>% 
  sort()

There are also r all_fivethirtyeightdata_datasets %>% length() datasets that could not be included in fivethirtyeight due to CRAN package size restrictions:

all_fivethirtyeightdata_datasets

These r all_fivethirtyeightdata_datasets %>% length() datasets are included in the fivethirtyeightdata add-on package, which you can install by running:

install.packages('fivethirtyeightdata', repos = 'https://fivethirtyeightdata.github.io/drat/', type = 'source')

So for example, to load the senators dataset, run:

library(fivethirtyeight)
library(fivethirtyeightdata)
senators

Article in “Technology Innovations in Statistics Education”

The fivethirtyeight package was featured in The fivethirtyeight R Package: “Tame Data” Principles for Introductory Statistics and Data Science Courses by Kim, Ismay, and Chunn (2018) published in Volume 11, Issue 1 of the journal “Technology Innovations in Statistics Education”.

Abstract: As statistics and data science instructors, we often seek to use data in our courses that are rich, real, realistic, and relevant. To this end we created the fivethirtyeight R package of data and code behind the stories and interactives at the data journalism website FiveThirtyEight.com. After a discussion on the conflicting pedagogical goals of “minimizing prerequisites to research” (Cobb 2015) while at the same time presenting students with a realistic view of data as it exists “in the wild,” we articulate how a desired balance between these two goals informed the design of the package. The details behind this balance are articulated as our proposed “Tame data principles for introductory statistics and data science courses.” Details of the package’s construction and example uses are included as well.

Data Analysis Examples in Vignettes

For some data sets, there are user-contributed example analyses in the form a package vignette. For example, look at “Bechdel analysis using the tidyverse based on the bechdel dataset used in the article
The Dollar-And-Cents Case Against Hollywood’s Exclusion of
Women
. For a complete list of vignettes run

vignette("user_contributed_vignettes", package = "fivethirtyeightdata")

More Information

  • Andrew Flowers gave a great demonstration of the package and the bechdel vignette during his rstudio::conf talk in Orlando, Florida in January 2017. The video of his talk is available here.
  • Click this Google Sheet for a master spreadsheet connecting
    1. the original 538 data on GitHub with
    2. the data frames in the package with
    3. information on the corresponding article