Load Stops data from Socrata

# stops url
stops_dataset <- "https://alicia-cloud.demo.socrata.com/Public-Safety/Police-Stops-For-Analysis/czuf-phci"
stops <- read.socrata(stops_dataset, email = config$username, password = config$password)

# total stops
total_stops <- nrow(stops)

View Arrests by Subject Perceived Race

# group by race
arrests <- stops %>%
  group_by(subject_perceived_race) %>%
  summarize(arrest_count = sum(arrest_flag),
            arrest_rate = sum(arrest_flag)/total_stops)

# sort descending rate
arrests$subject_perceived_race <- factor(arrests$subject_perceived_race, levels = arrests$subject_perceived_race[order(arrests$arrest_rate)])

# visualize
ggplot(data = arrests, aes(x=subject_perceived_race, y=arrest_rate)) +
  geom_bar(stat = "identity") +
  coord_flip()

View Searches by Subject Perceived Race

# group by race
frisks <- stops %>%
  group_by(subject_perceived_race) %>%
  summarize(frisk_count = sum(frisk_flag, na.rm = TRUE),
            frisk_rate = sum(frisk_flag, na.rm = TRUE)/total_stops)

# sort descending rate
frisks$subject_perceived_race <- factor(frisks$subject_perceived_race, levels = frisks$subject_perceived_race[order(frisks$frisk_rate)])

# visualize
ggplot(data = frisks, aes(x=subject_perceived_race, y=frisk_rate)) +
  geom_bar(stat = "identity") +
  coord_flip()