This is one noisy place. But some of this noise is coming from the world’s next great rock and roll band. Data courtesy of SF OpenData.
library(dplyr)
library(stringr)
library(leaflet)
library(lubridate)
df <- read.csv("Case_Data_from_San_Francisco_311__SF311_.csv", stringsAsFactors=FALSE)
df <- df %>%
filter(Point != "") %>%
mutate(Latitude = as.numeric(str_match(Point,"^\\((.*),(.*)\\)$")[,2])) %>%
mutate(Longitude = as.numeric(str_match(Point,"^\\((.*),(.*)\\)$")[,3])) %>%
mutate(Address = str_to_title(str_split(Address,",",simplify = TRUE)[,1])) %>%
mutate(Popup = str_c("<B>",Address,"</B>",Request.Details,sep="<br>")) %>%
mutate(Opened = parse_date_time(Opened,"mdYHMS", tz="America/Los_Angeles")) %>%
mutate(Responsible.Agency = as.factor(Responsible.Agency)) %>%
mutate(Status = as.factor(Status)) %>%
select(Opened, Status, Responsible.Agency,
Supervisor.District, Neighborhood,
Request.Details, Status, Popup,
Status.Notes, Latitude, Longitude)
palette <- colorFactor(c("Red","Green"),df$Status)
df %>%
leaflet() %>%
addTiles() %>%
addCircleMarkers(lng = ~Longitude, lat = ~Latitude,
color = ~palette(Status), weight = 1,
clusterOptions = markerClusterOptions(spiderfyOnMaxZoom = TRUE),
popup = ~Popup) %>%
addLegend("topright", pal=palette, values=~Status, title="Noise Report Status")
Above is a map dated 1/15/2017.