Generated 2026-08-10. The data URL below is pinned to commit ec957153a, a
snapshot of the dataset as of this exercise — so your numbers should match these exactly.
round(x, 1)).library(tidyverse)
library(lubridate)
activity <- read_csv("https://raw.githubusercontent.com/dwillis/umpd-logs/ec957153a614a913297b0c921303d222b45a55bb/data/all-police-activity.csv")
week_start <- ymd("2026-08-03")
daily <- activity |>
mutate(day = as_date(`Date Occurred`)) |>
filter(day >= week_start, day < week_start + days(7)) |>
count(day, name = "incidents") |>
complete(day = seq(week_start, week_start + days(6), by = "day"),
fill = list(incidents = 0))
daily |>
summarize(total = sum(incidents),
mean_per_day = round(mean(incidents), 1),
median_per_day = median(incidents))
Your summarize() output should match "This week's numbers" above: total 7,
mean 1.0, median 0. All values here use round(x, 1), which
rounds halves to the nearest even digit — the same rule as R's round().
Stuck on the concepts? The site's Learn pages walk through every technique used here, with this same dataset.