Loading datasets
library(htmlwidgets)
library(htmltools)
library(leaflet)
data1 <- read.csv("college.csv")
data2 <- read.csv("uscities.csv")
Filtering data for only Michigan colleges
library(dplyr)
MichiganCollege <- data1 %>% filter(state =="MI") %>%
arrange(desc(tuition))
## filter city data with Michigan cities
MichiganCity <- data2 %>% filter(state_id=="MI") %>%
select(city,state_id,population)
## join Michigan college data with city population
newMIData <- left_join(MichiganCollege,MichiganCity,by="city")
newMIData %>% arrange(desc(tuition)) %>% select(name, city,population,tuition,) %>% head(5)
## name city population tuition
## 1 Kalamazoo College Kalamazoo 215193 41161
## 2 Albion College Albion 8990 37485
## 3 University of Detroit Mercy Detroit 3506126 37320
## 4 College for Creative Studies Detroit 3506126 37092
## 5 Kettering University Flint 332190 36980
## create dataframe for map
michigan_data_points<-data.frame(
lat=newMIData$lat,
lng=newMIData$lng,
size=newMIData$tuition/2500,
label=newMIData$name,
city=newMIData$city,
control=newMIData$control,
tuition=newMIData$tuition
)
## create color palette for map
pal <- colorFactor(palette = c("blue", "red"),
levels = unique(michigan_data_points$control))
tuition.pal <- colorBin("RdYlBu",unique(michigan_data_points$tuition))
Plotting the map
# plot on map and add size and label
leaflet()%>%addProviderTiles(providers$CartoDB.Voyager)%>%
addCircleMarkers(data=michigan_data_points,
radius = ~size,
color = ~pal(control),
fillOpacity = 0.4,
popup = ~paste("City:",city,"<br/>","Tuition:",
"$",size*2500,"<br/>","School:",label)) %>%
setView(-84.5068, 44.1822, zoom = 6) %>%
addLegend(pal = tuition.pal,value=NULL, position = "topright",
title = "Tuition")%>%
addLegend(title = "Institution Control",
position = "topright", pal = pal,
values = michigan_data_points$control) %>%
addControl("Michigan Colleges and Their Yearly Cost",
position="topleft")