---
title: "MAP1"
output:
  html_notebook: default
  html_document: default
  pdf_document: default
---


---
title: "Where to Find the Best Job?"
output:
  html_document: default
  html_notebook: default
  pdf_document: default
---

       

```{r map1, echo=FALSE, message=FALSE}
library(readr)
library(dplyr)
library(maps)
library(leaflet)
library(rbokeh)
library(fmsb)

#setwd("C:/Users/Administrator/Desktop/ADS/Proj 1/Data")
load("C:/Users/Administrator/Desktop/ADS/Proj 1/Data/.RData")

#a14=read_csv("ss14pusa.csv")
#b14=read_csv("ss14pusb.csv")
#all14=rbind(a14,b14)
#rm(a14);rm(b14)
#gc();Sys.sleep(10);gc() #To make sure clean all memory in case of crash


#selct=select(all14,OCCP,ST,WAGP,AGEP,JWMNP,ESR,SCHL,SEX,WKHP,NAICSP,PWGTP,POWSP,POWPUMA)%>%
#      na.omit()%>%
#      mutate(WAGP=as.numeric(WAGP),
#             AGEP=as.numeric(AGEP),
#             WKHP=as.numeric(WKHP),
#             JWMNP=as.numeric(JWMNP),
#             PWGTP=as.numeric(PWGTP),
#             ST=as.integer(ST),
#             SCHL=as.integer(SCHL),
#             SEX=as.integer(SEX),
#             OCCP=as.integer(OCCP))%>%
#       merge(occupa,by="OCCP")
      

group_ST=group_by(selct,ST)
sumrz_ST=summarise(group_ST,
                   Meanwage=weighted.mean(WAGP,w=PWGTP),
                   MeanAGEP=weighted.mean(AGEP,w=PWGTP),
                   MeanWKHP=weighted.mean(WKHP,w=PWGTP),
                   MeanJWMNP=weighted.mean(JWMNP,w=PWGTP)
                    )%>%
          mutate(ST.map=match((ST_name$abbr[-52]),state.fips$abb,nomatch=99))%>%
          mutate(abb=state.fips$abb[ST.map])%>%
          arrange(ST.map)
map.data=merge(state.fips,sumrz_ST,by="abb",all=T)%>%
         arrange(ST.map)

pal1 <- colorNumeric(
  palette = "OrRd",
  domain = map.data$Meanwage
)


mapStates = map("state", fill = TRUE, plot = FALSE)
leaflet(data = mapStates) %>% addTiles() %>%
  addPolygons(fillColor =pal1(map.data$Meanwage), fillOpacity=0.5,stroke = FALSE)
```

####Figure 1.Map for Average Wage

This graph shows the distribution of the average wage of different states. As it shows, _The Northeast region_ generally has a higher salaries than the rest part of the contries. _The west coast_ also shows higher wage tendency. _Colorado, Minnesota and Illinois_ also stand out from the middle. Colorado has a reputation on its aerospace and aviation industry. Apart from agriculture, Minnesota has a strong root of bioscience, is one of the biggest cribs of medical profesionals. Chicago as the third biggest city in USA definitely contributes on the deeper color of Illinois in this graph.

