Establecimientos educativos en la ciudad de Cordoba

#En primer lugar, cargo shapefiles de barrios, ejido urbano y establecimientos educativos del pais.

cba_barrios<-st_read("Barrio.shp")
## Reading layer `Barrio' from data source `/Users/santiago/Google Drive/DRIVE MEU/- CIENCIA DE DATOS 2/Barrio.shp' using driver `ESRI Shapefile'
## replacing null geometries with empty geometries
## Simple feature collection with 503 features and 4 fields (with 1 geometry empty)
## geometry type:  GEOMETRY
## dimension:      XY
## bbox:           xmin: 4375309 ymin: 6512169 xmax: 4399439 ymax: 6536199
## proj4string:    +proj=tmerc +lat_0=-90 +lon_0=-63 +k=1 +x_0=4500000 +y_0=0 +datum=WGS84 +units=m +no_defs
cba_ejido<-st_read("EjidoMunicipal.shp")
## Reading layer `EjidoMunicipal' from data source `/Users/santiago/Google Drive/DRIVE MEU/- CIENCIA DE DATOS 2/EjidoMunicipal.shp' using driver `ESRI Shapefile'
## Simple feature collection with 1 feature and 2 fields
## geometry type:  POLYGON
## dimension:      XY
## bbox:           xmin: 4375309 ymin: 6512041 xmax: 4399570 ymax: 6536302
## proj4string:    +proj=tmerc +lat_0=-90 +lon_0=-63 +k=1 +x_0=4500000 +y_0=0 +datum=WGS84 +units=m +no_defs
ign_esteduc<-st_read("ign_establecimientoseduc.geojson")
## Reading layer `ign_establecimientoseduc' from data source `/Users/santiago/Google Drive/DRIVE MEU/- CIENCIA DE DATOS 2/ign_establecimientoseduc.geojson' using driver `GeoJSON'
## Simple feature collection with 47369 features and 8 fields
## geometry type:  POINT
## dimension:      XY
## bbox:           xmin: -72.8872 ymin: -63.3977 xmax: -53.6384 ymax: -21.8764
## CRS:            4326
#Utilizo st_transform para asegurar el mismo sistema de proyeccion en todos las variables.

cba_barrios<-st_transform(cba_barrios,crs=4326)
cba_ejido<-st_transform(cba_ejido,crs=4326)
ign_esteduc<-st_transform(ign_esteduc,crs=4326)

#Utilizo st_intersection para "recortar" las escuelas a nivel del ejido municipal.

cba_escuelas<-st_intersection(cba_ejido,ign_esteduc)

#Utilizo st_join para asignar a cada escuela el barrio correspondiente.

cba_escuelas_barrio<-st_join(cba_escuelas,cba_barrios)
#Genero un mapa para verificar los resultados.

ggplot()+
  geom_sf(data=cba_ejido)+
  geom_sf(data=cba_barrios)+
  geom_sf(data=cba_escuelas,color="red",alpha=.25)+
  labs(title="Ciudad de Cordoba",
      subtitle="Establecimientos Educativos",
      x="Longitud",
      y="Latitud",
      caption="Fuentes: Instituto Geografico Nacional + Cordoba Datos Abiertos")

#Agrupo las escuelas por barrio y elimino las que se encuentran fuera de los mismos.

cba_escuelas_barrio_agrup<-cba_escuelas_barrio%>%
  filter(!is.na(Nombre))%>%
  group_by(Nombre)%>%
  summarise(establecimientos=n())
#Elimino la geometria del dataset para luego unir la informacion resultante al data frame de barrios.

cba_escuelas_barrio_nogeo<-cba_escuelas_barrio_agrup%>%
  st_set_geometry(NULL)
cba_barrios_escuelas<-cba_barrios%>%
  left_join(cba_escuelas_barrio_nogeo,by="Nombre")
#Genero un grafico de Histograma para visualiar los casos tipicos y extremos de densidad de establecimientos educativos.

ggplot()+
  geom_histogram(data=cba_barrios_escuelas,aes(x=establecimientos/(Shape_area/10000)))+
  labs(title="Ciudad de Cordoba",
       subtitle="Histograma establecimientos educativos por barrio",
       x="Densidad por km^2",
       y="Frecuencia",
       caption="Fuente: Instituto Geografico Nacional")

#Muestro los resultados de densidad en un mapa de coropletas.

ggplot()+
  geom_sf(data=cba_barrios_escuelas,color=NA,aes(fill=establecimientos/(Shape_area/10000)))+
  scale_fill_viridis_c()+
  labs(title="Ciudad de Cordoba",
       subtitle="Densidad de establecimientos educativos por barrio",
       fill="Est. por km^2",
       x="Longitud",
       y="Latitud",
       caption="Fuente: Instituto Geografico Nacional + Cordoba Datos Abiertos")

#Finalmente, visualizo cantidad neta de establecimientos por barrio.

ggplot()+
  geom_histogram(data=cba_barrios_escuelas,aes(x=establecimientos))+
  labs(title="Ciudad de Cordoba",
       subtitle="Histograma establecimientos educativos por barrio",
       x="Establecimientos totales",
       y="Frecuencia",
       caption="Fuente: Instituto Geografico Nacional")

ggplot()+
  geom_sf(data=cba_barrios_escuelas,aes(fill=as.factor(establecimientos)))+
  scale_fill_viridis_d()+
  labs(title="Ciudad de Cordoba",
       subtitle="Cantidad de establecimientos educativos por barrio",
       fill="Establecimientos totales",
       x="Longitud",
       y="Latitud",
       caption="Fuente: Instituto Geografico Nacional + Cordoba Datos Abiertos")