rm(list=ls())

library(data.table)
library(ggplot2)
library(leaflet)
library(chilemapas)

library(tidyverse)
library(sp)
library(broom)
library(janitor) #Paquete para limpiar datos
library(sf) #Geografia
library(RColorBrewer)
library(classInt)
library(plotly)


path <- 'C:/Users/Rorro Bielenberg/Desktop/UAI/Data Science/Tarea 4/'
colegios<- fread(paste0(path,'Colegios.csv'))

Pregunta 1 Muestre en un gráfico de barras el cual contenga el número de colegios por nivel minimo.

ggplot(colegios, aes(x=`Nivel mínimo`)) + geom_bar()

Pregunta 2 Realice un gráfico de distribución del puntaje simce de matematicas, agrupando por dependencias (público o particular subvencionado)

ggplot(colegios,aes(SIMCE_mate, fill=Dependencia)) +
  geom_histogram()

Pregunta 3 Grafique la relación entre el SIMCE matemática básica con la variable Autoestima académica y motivación escolar básica. Explique

ggplot(colegios,aes(x=`SIMCE matemática básica`, y=`Autoestima académica y motivación escolar básica`)) +  geom_point() + geom_smooth()

#Respuesta: Podemos observar que se tiende a tener un mayor puntaje en el simce de matematicas básica, cuando la variable autoestima y motivacion escolar son mayores.

Pregunta 4 Realice un mapa de leaflet que muestre donde se ubican los colegios de la región metropolitana. Utilice la función addCircles como tercer argumento, esto es, leaflet() %>% addtiles() %>% addCircles

leaflet(colegios) %>% addTiles() %>%
  addCircles(lng = ~lon_school, lat = ~lat_school, weight = 1,
    radius = ~sqrt(rbd) * 1, popup = ~cod_comuna
  )

Pregunta 5 Realice un choropleth (mapa de poligonos) de los promedios simce de matématica básica por comuna de la región metropolitana.

Nota: agregue %>% setView(lng=-70.5,lat =-33.600, zoom = 8) al mapa, esta función setea la vista con las coodenadas específicas de la región metropolitana

mapa_comunas
## # A tibble: 345 x 4
##    codigo_comuna codigo_provincia codigo_region                         geometry
##    <chr>         <chr>            <chr>                       <MULTIPOLYGON [°]>
##  1 01401         014              01            (((-68.86081 -21.28512, -68.921~
##  2 01403         014              01            (((-68.65113 -19.77188, -68.811~
##  3 01405         014              01            (((-68.65113 -19.77188, -68.635~
##  4 01402         014              01            (((-69.31789 -19.13651, -69.271~
##  5 01404         014              01            (((-69.39615 -19.06125, -69.400~
##  6 01107         011              01            (((-70.1095 -20.35131, -70.1243~
##  7 01101         011              01            (((-70.09894 -20.08504, -70.102~
##  8 02104         021              02            (((-68.98863 -25.38016, -68.987~
##  9 02101         021              02            (((-70.60654 -23.43054, -70.601~
## 10 02201         022              02            (((-67.94302 -22.38175, -67.955~
## # ... with 335 more rows
colegios2 <- merge(mapa_comunas,colegios, by.x="codigo_comuna", by.y="cod_comuna")
colegios2 <- na.omit(colegios2)
colegios2 <- data.table(colegios2)
promedios <- colegios2[, nota:=mean(`SIMCE matemática básica`), by=codigo_comuna]


promedios <- promedios[!duplicated(codigo_comuna), .(codigo_comuna, geometry, nota)]
promedios <- st_sf(promedios)



pal <- colorNumeric(
  palette = "YlOrBr",
  domain = colegios2$nota)


leaflet(promedios) %>%
  setView(lng=-70.5,lat =-33.600, zoom = 8)%>%
  addPolygons(fillColor = ~pal(nota),color = "#b2aeae", smoothFactor = 0.2, weight = 0.8,
    opacity = 1.0, fillOpacity = 1)%>%
  addLegend(pal = pal, 
            values = colegios2$nota,
            position = "bottomright",
            title = "Promedio General") %>% 
  addScaleBar(position = "topright")

Pregunta 6 Realice el mismo gráfico pero con ggplot

ggplot() +
  geom_sf(promedios,mapping=aes(geometry=geometry, fill=nota))+
  coord_sf(xlim = c(-71.8,-70), ylim = c(-34,-32))