Pre-computed annual crash counts from FARS (fatal crashes) and CRSS (general crash estimates) databases for 2014-2023, broken down by various risk factors and vulnerable road user categories.
Format
A tibble with 340 rows and 9 variables:
- year
Year (2014-2023)
- month
Month, if included in interval, as the three-letter abbreviation and an ordered factor (Jan=1, Feb=2, etc.)
- what
Count unit - currently only "crashes"
- states
Geographic scope - "all" for national-level data
- region
Regional scope - "all" for national-level data
- urb
Urban/rural classification - "all" for combined data
- who
Person type - "all" for all person types
- involved
Risk factor or crash type. Options include:
- "any"
All crashes (general counts)
- "each"
Each factor listed below, separately
- "alcohol"
Alcohol-involved crashes
- "bicyclist"
Crashes involving bicyclists
- "distracted driver"
Distracted driving crashes
- "drugs"
Drug-involved crashes
- "hit and run"
Hit-and-run crashes
- "large trucks"
Large truck-involved crashes
- "motorcycle"
Motorcycle crashes
- "older driver"
Crashes involving older drivers
- "pedalcyclist"
Crashes involving pedalcyclists
- "pedbike"
Pedestrian and bicyclist crashes combined
- "pedestrian"
Pedestrian crashes
- "police pursuit"
Police pursuit-related crashes
- "roadway departure"
Roadway departure crashes
- "rollover"
Rollover crashes
- "speeding"
Speed-related crashes
- "young driver"
Crashes involving young drivers
- n
Count of crashes. FARS counts represent actual fatal crashes; CRSS counts represent weighted estimates of all crashes
Details
This dataset provides quick access to national-level annual crash counts without needing to download and process the full datasets. It combines data from two NHTSA databases:
- FARS
Fatal crashes (actual counts)
- CRSS
General crashes (weighted estimates)
The data can be reproduced using the counts()
function on downloaded
FARS and CRSS data with involved = "any"
and involved = "each"
parameters.
See also
counts
for generating custom counts from downloaded data
Examples
if (FALSE) { # \dontrun{
# View total crashes over time by data source
library(dplyr)
library(ggplot2)
annual_counts %>%
filter(involved == "any") %>%
ggplot(aes(x = year, y = n, fill = source)) +
geom_col(position = "dodge") +
labs(title = "Annual Crash Counts by Data Source",
x = "Year", y = "Number of Crashes")
# Compare risk factor trends in fatal crashes
annual_counts %>%
filter(source == "FARS",
involved %in% c("alcohol", "speeding", "distracted driver")) %>%
ggplot(aes(x = year, y = n, color = involved)) +
geom_line() +
labs(title = "Fatal Crash Trends by Risk Factor",
x = "Year", y = "Fatal Crashes")
} # }