if(!require(tidyverse))install.packages("tidyverse")
## Loading required package: tidyverse
## ── Attaching core tidyverse packages ──────────────────────── tidyverse 2.0.0 ──
## ✔ dplyr     1.1.4     ✔ readr     2.1.5
## ✔ forcats   1.0.0     ✔ stringr   1.5.1
## ✔ ggplot2   3.4.4     ✔ tibble    3.2.1
## ✔ lubridate 1.9.3     ✔ tidyr     1.3.1
## ✔ purrr     1.0.2     
## ── Conflicts ────────────────────────────────────────── tidyverse_conflicts() ──
## ✖ dplyr::filter() masks stats::filter()
## ✖ dplyr::lag()    masks stats::lag()
## ℹ Use the conflicted package (<http://conflicted.r-lib.org/>) to force all conflicts to become errors
library(tidyverse)

mydata <- read.csv("https://drkblake.com/wp-content/uploads/2024/02/CrimeData.csv")
head(mydata, 20)
##           Description     Incident                       Location
## 1           Vandalism   24-0000024             600 BLK Dusan Blvd
## 2               Theft   24-0000001        1900 BLK Saddlebrook Dr
## 3             Assault CTN23-036746            1200 BLK BAGWELL DR
## 4                 DUI   24-0000002     Nw Broad St//N Thompson Ln
## 5                 DUI   24-0000006     NW BROAD ST / BRINKLEY AVE
## 6             Assault   24-0000007         200 BLK Indian Park Dr
## 7           Vandalism CTN23-036749            1200 BLK BAGWELL DR
## 8           Sex crime   24-0000011            2000 BLK Foxdale Dr
## 9  Disorderly Conduct   24-0000010 1600 BLK Middle Tennessee Blvd
## 10                DUI   24-0000010 1600 BLK Middle Tennessee Blvd
## 11            Assault   24-0000013        2400 BLK WILLOWBROOK DR
## 12   Robbery/Burglary CTN24-000020                0 BLK HOWARD ST
## 13   Robbery/Burglary   24-0000014               300 BLK Byrd Ave
## 14                DUI   24-0000022          1500 BLK W College St
## 15              Drugs   24-0000027         2400 BLK Old Fort Pkwy
## 16              Drugs   24-0000027         2400 BLK Old Fort Pkwy
## 17              Drugs   24-0000027         2400 BLK Old Fort Pkwy
## 18            Assault   24-0000026              1200 BLK Tiree Dr
## 19            Assault   24-0000030      1200 BLK Old Lascassas Rd
## 20   Robbery/Burglary CTN24-000041               0 BLK LINCOLN DR
##                 Agency           Date
## 1  Murfreesboro Police  1/1/2024 0:01
## 2  Murfreesboro Police  1/1/2024 0:36
## 3   Clarksville Police  1/1/2024 0:42
## 4  Murfreesboro Police  1/1/2024 1:11
## 5  Murfreesboro Police  1/1/2024 3:06
## 6  Murfreesboro Police  1/1/2024 3:16
## 7   Clarksville Police  1/1/2024 5:48
## 8  Murfreesboro Police  1/1/2024 6:32
## 9  Murfreesboro Police  1/1/2024 6:43
## 10 Murfreesboro Police  1/1/2024 6:43
## 11 Murfreesboro Police  1/1/2024 6:50
## 12  Clarksville Police  1/1/2024 7:15
## 13 Murfreesboro Police  1/1/2024 8:21
## 14 Murfreesboro Police 1/1/2024 10:18
## 15 Murfreesboro Police 1/1/2024 11:24
## 16 Murfreesboro Police 1/1/2024 11:24
## 17 Murfreesboro Police 1/1/2024 11:24
## 18 Murfreesboro Police 1/1/2024 11:30
## 19 Murfreesboro Police 1/1/2024 12:00
## 20  Clarksville Police 1/1/2024 12:30
SigByCounty <- mydata
SigByCounty <- group_by(SigByCounty, Description, Agency)
SigByCounty <- summarize(SigByCounty, Count = n())
## `summarise()` has grouped output by 'Description'. You can override using the
## `.groups` argument.
SigByCounty <- pivot_wider(SigByCounty,
                           names_from = Agency,
                           values_from = Count)
head(SigByCounty, 20)
## # A tibble: 14 × 3
## # Groups:   Description [14]
##    Description        `Murfreesboro Police` `Clarksville Police`
##    <chr>                              <int>                <int>
##  1 Arson                                  1                   NA
##  2 Assault                              199                   29
##  3 Child Abuse                            6                   NA
##  4 DUI                                   33                    8
##  5 Disorderly Conduct                    24                   13
##  6 Drugs                                126                   30
##  7 Fraud                                 66                   11
##  8 Rape                                   2                   NA
##  9 Robbery/Burglary                      29                   12
## 10 Sex crime                             11                   NA
## 11 Stalking                               6                   NA
## 12 Theft                                206                   25
## 13 Vandalism                             44                    8
## 14 Weapon violation                      13                    8