library(rgdal)
library(RColorBrewer)
library(leaflet)
library(sf)
library(ROCR)
library(mapview)
library(tigris)
library(sp)
library(ggplot2)
library(dplyr)
library(tigris)
library(tmaptools)
library(tigris)
options(tigris_class = "sf")
options(tigris_use_cache=TRUE)
mydata<-zctas(cb=F, year=2015)
library(acs)
## Loading required package: stringr
## Loading required package: XML
## 
## Attaching package: 'acs'
## The following object is masked from 'package:dplyr':
## 
##     combine
## The following object is masked from 'package:base':
## 
##     apply
library(leaflet)
#dfw <- tracts(state = 'TX', county = c('Dallas', 'Tarrant'))
#bexar<- tracts(state = 'TX', county = c('Bexar'))

# Texas zip code data
zip <- read.csv("~/Google Drive/TigrisShapeFiles/TxEstablishments_Employees.csv",stringsAsFactors = F)
tx <- dplyr::filter(zip, STATE == "TX")

stud<-read.csv("~/Google Drive/TigrisShapeFiles/grad_students.csv",stringsAsFactors = F)


# Get polygon data for TX onlyZCTA5CE10
txzips<-unique(tx$ZIP)
#mypoly <- subset(mydata, ZCTA5CE10 %in% txzips)
tx$zip<-as.character(tx$ZIP)

stud$zip<-as.character(stud$ZIP)

mdat<-geo_join(mydata, tx, by_sp="ZCTA5CE10", by_df="zip",how="inner")

st_dat<-geo_join(mydata, stud, by_sp="ZCTA5CE10", by_df="zip",how="inner")

#bexar_merged<-st_join(mdat,bexar)

#plot(mdat["ZCTA5CE10"])
pf<-mdat%>%mutate(ests=as.numeric(Establishments), emps=as.numeric(Employees))

st<-st_dat%>%mutate(st=as.numeric(students))

mapview(pf["Establishments"])
mapview(pf["Employees"])
brks<-quantile(pf$ests, probs = seq(0,1,length.out = 4), na.rm = T)

brke<-quantile(pf$emps, probs = seq(0,1,length.out = 4), na.rm = T)


breaks =unique(quantile(st$st, probs = seq(0, 1,0.2)))


pf$quart_est<-cut(pf$ests, brks, include.lowest = T)

pf$quart_emp<-cut(pf$emps, brke, include.lowest = T)


st$quart_st<-cut(st$st, breaks, include.lowest = T)


plot_p1<-pf%>%ggplot()+geom_sf(aes(fill=quart_est))+scale_fill_brewer(palette = "Blues", na.value="grey")+ggtitle(label = "Establishments", subtitle = "")+guides(fill=guide_legend(title="Establishments"))


plot_p2<-pf%>%ggplot()+geom_sf(aes(fill=quart_emp))+scale_fill_brewer(palette = "Blues", na.value="grey")+ggtitle(label = "Employees", subtitle = "")+guides(fill=guide_legend(title="Employees"))


plot_p3<-st%>%ggplot()+geom_sf(aes(fill=quart_st))+scale_fill_brewer(palette = "Greens", na.value="grey")+ggtitle(label = "Students", subtitle = "")+guides(fill=guide_legend(title="GR students"))



plot_p1

plot_p2

plot_p3

pal <- colorQuantile("Blues", NULL, n = 10)
pal1 <- colorQuantile("Green", NULL, n = 4)


pal2 <- colorBin("Greens", domain = 0:100)
pal2(runif(10, 60, 100))
##  [1] "#31A354" "#006D2C" "#006D2C" "#31A354" "#006D2C" "#006D2C" "#31A354"
##  [8] "#31A354" "#006D2C" "#006D2C"
popemp = paste0("<strong>", pf$ZIP, "</strong>", "</br>", pf$Employees)
popests = paste0("<strong>", pf$ZIP, "</strong>", "</br>", pf$Establishments)
popstud = paste0("<strong>", st$zip, "</strong>", "</br>", st$st)


pf$emp2 =((pf$Employees -  min(pf$Employees))/(max(pf$Employees)-min(pf$Employees))*33)
pf$est2 =((pf$Establishments -  min(pf$Establishments))/(max(pf$Establishments)-min(pf$Establishments))*33)
st$st2 =((st$students -  min(st$students))/(max(st$students)-min(st$students))*33)


Emp <- leaflet(pf) %>%
 
  addProviderTiles("CartoDB.Positron") %>%
   addPolygons( data = pf, fillColor = ~pal(emp2), 
   fillOpacity = 1,
   weight = 3,
   color = "white",
   popup = popemp
  ) %>%
    addLegend("bottomright", pal = colorNumeric( palette = pal, domain = pf$Employees ), values = ~Employees,
    title = "Number of Employees",
    opacity = 1)



Emp
Est <- leaflet(pf) %>%
 
  addProviderTiles("CartoDB.Positron") %>%
   addPolygons( data = pf, fillColor = ~pal(est2), 
   fillOpacity = 1,
   weight = 3,
   color = "white",
   popup = popests
  ) %>%
    addLegend("bottomright", pal = colorNumeric( palette = pal, domain = pf$Establishments ), values = ~Establishments,
    title = "Number of Establishments",
    opacity = 1)
Est
bins <- c(0, 10, 20, 50, 100, 200, Inf)
bin <- c(0, 3, 5, 10, 15, 20, 25,30,40, 50,60,70, 100, Inf)

pall <- colorBin("Greens", domain = st$st, bins = bin)


s<-leaflet(st)%>% addPolygons(data = st,
  fillColor = ~pall(st),
  weight = 2,
  opacity = 1,
  color = "white",
  dashArray = "3",
  fillOpacity = 0.7,
  highlight = highlightOptions(
    weight = 5,
    color = "#666",
    dashArray = "",
    fillOpacity = 0.7,
    bringToFront = TRUE))%>% 
  addLegend(pal = pall, values = ~st, title = "Number of Students",
                                       opacity = 0.7, position = "bottomright")

s
st <- leaflet(st) %>%
 
  addProviderTiles("CartoDB.Positron") %>%
   addPolygons( data = st, fillColor = ~pall(st), 
   fillOpacity = 1,
   weight = 3,
   color = "white",
   popup = popstud
  ) %>%
   addLegend(pal = pall, values = ~st, title = "Number of Students",
                                       opacity = 1, position = "bottomright")
st