La libreria rgdal presenta errores por la version de Rstudio, sin embargo, se puede reemplazar por otras librerias para que funcione.
Crear un Shape File a partir de un archivo de coordenadas de puntos que estan en un documento de excel
library(readxl)
Datos_Vivienda <- read_excel("C:/Users/juand/OneDrive - PUJ Cali/Javeriana/5° semestre/Estadistica aplicada/Datos Geograficos/Datos_Vivienda.xlsx")
#Crear un archivo de puntos a partir de la base de datos, eliminando los NA para no tener problemas
Datos_Vivienda2=na.omit(Datos_Vivienda)
vivienda_map=SpatialPointsDataFrame(coords = Datos_Vivienda2[,11:12],
data = Datos_Vivienda2,
proj4string =crs(comunas))
plot(vivienda_map)
En este caso se visualizan unicamente las casas estrato 6
pos_casas=which(vivienda_map@data$Tipo=="Casa"&
vivienda_map@data$Estrato==6)
vivienda_casas=vivienda_map[pos_casas,]
plot(vivienda_casas)
Aquí estamos viendo todas las casas estrato 6 en Cali, podemos agruparlo así como habiamos hecho con el ejercicio de movilidad, para visualizar los sectores donde hay más concentración de casas estrato 6
Con los mismos datos de las ofertas de vivienda en Cali podemos construir un mapa de calor que muestre las zonas de Cali donde hay mayor numero de oferta, diviendolo por comunas.
comunas2 <- spTransform(comunas, CRS("+proj=longlat +ellps=WGS84 +datum=WGS84"))
vivienda_map2 <- spTransform(vivienda_map, CRS("+proj=longlat +ellps=WGS84 +datum=WGS84"))
total_ofertas <- over(x = comunas2, y = vivienda_map2[, 1], fn = length)
comunas2$ofertas <- total_ofertas[, 1]
spplot(comunas2, "ofertas",
col.regions = viridisLite::viridis(20),
main = "Ofertas por comuna")
Esta segunda opción permite una visualización más agradable a la vista por el tipo de colores y ofrece la posibilidad de ver las coordenadas
comunas_sf <- st_as_sf(comunas) %>% st_transform(4326)
viviendas_sf <- st_as_sf(vivienda_map) %>% st_transform(4326)
comunas_sf$ofertas <- lengths(st_intersects(comunas_sf, viviendas_sf))
library(ggplot2)
ggplot(comunas_sf) +
geom_sf(aes(fill = ofertas)) +
scale_fill_viridis_c(name = "Ofertas") +
ggtitle("Ofertas de vivienda por comuna")