This is an R Markdown document for Developing Data Products course of JHU Data Scientist Concentration by Rongbin Ye. Utilizing the knowledge learnt, this markdown create a map of theft in the Chicago region reported to the Chicago Police Department on the first day of 2020.
library(readr)
library(leaflet)
## This version of Shiny is designed to work with 'htmlwidgets' >= 1.5.
## Please upgrade via install.packages('htmlwidgets').
library(tidyverse)
## ── Attaching packages ────────────────────────────── tidyverse 1.2.1 ──
## ✔ ggplot2 3.2.1 ✔ purrr 0.3.3
## ✔ tibble 2.1.3 ✔ dplyr 0.8.3
## ✔ tidyr 1.0.0 ✔ stringr 1.4.0
## ✔ ggplot2 3.2.1 ✔ forcats 0.4.0
## ── Conflicts ───────────────────────────────── tidyverse_conflicts() ──
## ✖ dplyr::filter() masks stats::filter()
## ✖ dplyr::lag() masks stats::lag()
library(stringr)
Source
## 2. Load Data
## Data From Research & Development Division of the Chicago Police Department
url <- 'https://data.cityofchicago.org/api/views/dfnk-7re6/rows.csv?accessType=DOWNLOAD'
recent_crime<- read_csv('https://data.cityofchicago.org/api/views/dfnk-7re6/rows.csv?accessType=DOWNLOAD')
## Parsed with column specification:
## cols(
## `CASE#` = col_character(),
## `DATE OF OCCURRENCE` = col_character(),
## BLOCK = col_character(),
## IUCR = col_character(),
## `PRIMARY DESCRIPTION` = col_character(),
## `SECONDARY DESCRIPTION` = col_character(),
## `LOCATION DESCRIPTION` = col_character(),
## ARREST = col_character(),
## DOMESTIC = col_character(),
## BEAT = col_double(),
## WARD = col_double(),
## `FBI CD` = col_character(),
## `X COORDINATE` = col_double(),
## `Y COORDINATE` = col_double(),
## LATITUDE = col_double(),
## LONGITUDE = col_double(),
## LOCATION = col_character()
## )
# Transform into Binary
recent_crime$ARREST <- as.factor(recent_crime$ARREST)
# Loading Data
df <- recent_crime %>%
dplyr::mutate(lat = recent_crime$LATITUDE,
lng = recent_crime$LONGITUDE,
date = stringr::str_sub(recent_crime$`DATE OF OCCURRENCE`, start = 1, end = 11),
col = ifelse(recent_crime$ARREST == "Y", "blue","red")) %>%
dplyr::filter(recent_crime$`PRIMARY DESCRIPTION` == 'THEFT') %>%
dplyr::select(`CASE#`, col, lat, lng, date)
df <- df %>%
dplyr::filter(df$date == c( '01/01/2020 ')) %>%
dplyr::select(-date)
df %>%
leaflet() %>%
addTiles() %>%
addCircleMarkers(clusterOptions = markerClusterOptions(), fill = col) %>%
addLegend(labels = c("Arrested","Non-Arrested"), colors = c("blue","red") )
## Assuming "lng" and "lat" are longitude and latitude, respectively