knitr::opts_chunk$set(echo = TRUE)
## Initializing Libraries
setwd('C:/Users/ogalagedara/Documents/data for r project')
require(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.5.1 ✔ tibble 3.2.1
## ✔ lubridate 1.9.4 ✔ tidyr 1.3.1
## ✔ purrr 1.0.4
## ── 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
require(ggplot2)
require(mapview)
## Loading required package: mapview
require(sf)
## Loading required package: sf
## Linking to GEOS 3.11.2, GDAL 3.8.2, PROJ 9.3.1; sf_use_s2() is TRUE
require(dplyr)
require(devtools)
## Loading required package: devtools
## Loading required package: usethis
require(leaflet)
## Loading required package: leaflet
require(ggmap); require(ggsn); require(RColorBrewer); require(htmlwidgets); require(classInt); require(sp); require(magrittr)
## Loading required package: ggmap
## ℹ Google's Terms of Service: <https://mapsplatform.google.com>
## Stadia Maps' Terms of Service: <https://stadiamaps.com/terms-of-service/>
## OpenStreetMap's Tile Usage Policy: <https://operations.osmfoundation.org/policies/tiles/>
## ℹ Please cite ggmap if you use it! Use `citation("ggmap")` for details.Loading required package: ggsn
## Warning in library(package, lib.loc = lib.loc, character.only = TRUE,
## logical.return = TRUE, : there is no package called 'ggsn'
## Loading required package: RColorBrewer
## Loading required package: htmlwidgets
## Loading required package: classInt
## Loading required package: sp
## Loading required package: magrittr
##
## Attaching package: 'magrittr'
##
## The following object is masked from 'package:ggmap':
##
## inset
##
## The following object is masked from 'package:purrr':
##
## set_names
##
## The following object is masked from 'package:tidyr':
##
## extract
require(gganimate)
## Loading required package: gganimate
## Cleaning NTA
basemap <- st_read("C:/Users/ogalagedara/Documents/data for r project/2020 Neighborhood Tabulation Areas (NTAs)_20250512.geojson")
## Reading layer `2020 Neighborhood Tabulation Areas (NTAs)_20250512' from data source `C:\Users\ogalagedara\Documents\data for r project\2020 Neighborhood Tabulation Areas (NTAs)_20250512.geojson'
## using driver `GeoJSON'
## Simple feature collection with 262 features and 11 fields
## Geometry type: MULTIPOLYGON
## Dimension: XY
## Bounding box: xmin: -74.25559 ymin: 40.49613 xmax: -73.70001 ymax: 40.91553
## Geodetic CRS: WGS 84
basemap <- basemap%>%filter(grepl('Brooklyn',boroname,ignore.case=TRUE))
## Winter 2024 Data Loading and Cleaning
Winter2024 <- read.csv('Winter2024.csv')
Winter2024$CMPLNT_NUM <- NULL
Winter2024$LOC_OF_OCCUR_DESC <- NULL
Winter2024$VIC_AGE_GROUP <- NULL
Winter2024$KY_CD <- NULL
Winter2024$ADDR_PCT_CD <- NULL
Winter2024$OFNS_DESC <- NULL
Winter2024$PD_CD <- NULL
Winter2024$PREM_TYP_DESC <- NULL
Winter2024$PD_DESC <- NULL
Winter2024$CRM_ATPT_CPTD_CD <- NULL
Winter2024$JURIS_DESC <- NULL
Winter2024$STATION_NAME <- NULL
Winter2024$VIC_RACE <- NULL
Winter2024$VIC_SEX <- NULL
Winter2024 <- Winter2024%>%filter(grepl('Brooklyn',BORO_NM,ignore.case=TRUE))
Winter2024 <- Winter2024%>%filter(LAW_CAT_CD%in%c('FELONY','MISDEMEANOR'))
## Filtered for Brooklyn, Felony and Misdemeanor
## Converting to and sf object
Winter2024 <- Winter2024%>%filter(!(Latitude==0 & Longitude==0))
Winter2024 <- st_as_sf(Winter2024,
coords = c("Longitude","Latitude"),
crs = 4326,
remove = FALSE)
winter2024MAP <- ggplot()+ geom_sf(data = basemap, fill = 'white', color ='black', size = 0.3)+
stat_density2d(data=Winter2024, aes(x = Longitude, y = Latitude, fill = ..level..),
geom = "polygon", alpha = 0.5, color = NA) +
scale_fill_viridis_c(option = "rocket") +
labs(title = "Density of Felony and Misdemeanor NYPD Incidents in Brooklyn, December - Feburary (2023-2024)",
fill = "Felony and Misdemeanor Incidents") +
coord_sf() +
theme_classic()+theme(panel.grid =
element_blank(),
axis.title = element_blank(),
axis.text = element_blank(),
axis.line = element_blank())
## Spring 2024 Data Loading and Clean
setwd('C:/Users/ogalagedara/Documents/data for r project')
Spring2024 <- read.csv('Spring2024.csv')
Spring2024 <- Spring2024%>%filter(LAW_CAT_CD%in%c('FELONY','MISDEMEANOR'))
Spring2024$CMPLNT_NUM <- NULL
Spring2024$LOC_OF_OCCUR_DESC <- NULL
Spring2024$VIC_AGE_GROUP <- NULL
Spring2024$KY_CD <- NULL
Spring2024$ADDR_PCT_CD <- NULL
Spring2024$OFNS_DESC <- NULL
Spring2024$PD_CD <- NULL
Spring2024$PREM_TYP_DESC <- NULL
Spring2024$PD_DESC <- NULL
Spring2024$CRM_ATPT_CPTD_CD <- NULL
Spring2024$JURIS_DESC <- NULL
Spring2024$STATION_NAME <- NULL
Spring2024$VIC_RACE <- NULL
Spring2024$VIC_SEX <- NULL
Spring2024$CMPLNT_FR_TM <- NULL
Spring2024$PATROL_BORO <- NULL
Spring2024 <- Spring2024%>%filter(grepl('Brooklyn',BORO_NM,ignore.case=TRUE))
Spring2024 <- Spring2024%>%filter(!(Latitude==0 & Longitude==0))
Spring2024 <- st_as_sf(Spring2024,
coords = c("Longitude","Latitude"),
crs = 4326,
remove = FALSE)
Spring2024MAP <- ggplot()+ geom_sf(data = basemap, fill = 'white', color ='black', size = 0.3)+
stat_density2d(data=Spring2024, aes(x = Longitude, y = Latitude, fill = ..level..),
geom = "polygon", alpha = 0.5, color = NA) +
scale_fill_viridis_c(option = "rocket") +
labs(title = "Density of Felony and Misdemeanor NYPD Incidents in Brooklyn, March - May (2024)",
fill = "Felony and Misdemeanor Incidents") +
coord_sf() +
theme_classic()+theme(panel.grid =
element_blank(),
axis.title = element_blank(),
axis.text = element_blank(),
axis.line = element_blank())
## Summer 2024 Data Loading and Cleaning
setwd('C:/Users/ogalagedara/Documents/data for r project')
Summer2024 <- read.csv('Summer2024.csv')
Summer2024 <- Summer2024%>%filter(LAW_CAT_CD%in%c('FELONY','MISDEMEANOR'))
Summer2024$CMPLNT_NUM <- NULL
Summer2024$LOC_OF_OCCUR_DESC <- NULL
Summer2024$VIC_AGE_GROUP <- NULL
Summer2024$KY_CD <- NULL
Summer2024$ADDR_PCT_CD <- NULL
Summer2024$OFNS_DESC <- NULL
Summer2024$PD_CD <- NULL
Summer2024$PREM_TYP_DESC <- NULL
Summer2024$PD_DESC <- NULL
Summer2024$CRM_ATPT_CPTD_CD <- NULL
Summer2024$JURIS_DESC <- NULL
Summer2024$STATION_NAME <- NULL
Summer2024$VIC_RACE <- NULL
Summer2024$VIC_SEX <- NULL
Summer2024$CMPLNT_FR_TM <- NULL
Summer2024$PATROL_BORO <- NULL
Summer2024 <- Summer2024%>%filter(!(Latitude==0 & Longitude==0))
Summer2024 <- Summer2024%>%filter(grepl('Brooklyn',BORO_NM,ignore.case=TRUE))
Summer2024 <- st_as_sf(Summer2024,
coords = c("Longitude","Latitude"),
crs = 4326,
remove = FALSE)
Summer2024MAP <- ggplot()+ geom_sf(data = basemap, fill = 'white', color ='black', size = 0.3)+
stat_density2d(data=Summer2024, aes(x = Longitude, y = Latitude, fill = ..level..),
geom = "polygon", alpha = 0.5, color = NA) +
scale_fill_viridis_c(option = "rocket") +
labs(title = "Density of Felony and Misdemeanor NYPD Incidents in Brooklyn, June - August (2024)",
fill = "Felony and Misdemeanor Incidents") +
coord_sf() +
theme_classic()+theme(panel.grid =
element_blank(),
axis.title = element_blank(),
axis.text = element_blank(),
axis.line = element_blank())
## Fall 2024 Data Loading and Cleaning
setwd('C:/Users/ogalagedara/Documents/data for r project')
Fall2024 <- read.csv('Fall2024.csv')
Fall2024 <- Fall2024%>%filter(LAW_CAT_CD%in%c('FELONY','MISDEMEANOR'))
Fall2024$CMPLNT_NUM <- NULL
Fall2024$LOC_OF_OCCUR_DESC <- NULL
Fall2024$VIC_AGE_GROUP <- NULL
Fall2024$KY_CD <- NULL
Fall2024$ADDR_PCT_CD <- NULL
Fall2024$OFNS_DESC <- NULL
Fall2024$PD_CD <- NULL
Fall2024$PREM_TYP_DESC <- NULL
Fall2024$PD_DESC <- NULL
Fall2024$CRM_ATPT_CPTD_CD <- NULL
Fall2024$JURIS_DESC <- NULL
Fall2024$STATION_NAME <- NULL
Fall2024$VIC_RACE <- NULL
Fall2024$VIC_SEX <- NULL
Fall2024$CMPLNT_FR_TM <- NULL
Fall2024$PATROL_BORO <- NULL
Fall2024 <- Fall2024%>%filter(!(Latitude==0 & Longitude==0))
Fall2024 <- Fall2024%>%filter(grepl('Brooklyn',BORO_NM,ignore.case=TRUE))
Fall2024 <- st_as_sf(Fall2024,
coords = c("Longitude","Latitude"),
crs = 4326,
remove = FALSE)
Fall2024MAP <- ggplot()+ geom_sf(data = basemap, fill = 'white', color ='black', size = 0.3)+
stat_density2d(data=Fall2024, aes(x = Longitude, y = Latitude, fill = ..level..),
geom = "polygon", alpha = 0.5, color = NA) +
scale_fill_viridis_c(option = "rocket") +
labs(title = "Density of Felony and Misdemeanor NYPD Incidents in Brooklyn, September - November (2024)",
fill = "Felony and Misdemeanor Incidents") +
coord_sf() +
theme_classic()+theme(panel.grid =
element_blank(),
axis.title = element_blank(),
axis.text = element_blank(),
axis.line = element_blank())
##addTiles()%>% ## addRasterImage(r, colors=pal, opacity = 0.3)%>% ## addLegend(pal = pal, values = values(r), title = ‘Density’, opacity = 0.3) ##}