R Markdown

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.

A. Prepare Work: Libraries & Data

1. Libraries

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

‘Logo’ ## 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)

B. Main Analysis: Theft on the 1st Day of 2020

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