Exploración de Datos de Vivienda y Edificación con R: Casos Prácticos de Geografía Urbana
Clasificado en Geografía
Escrito el en español con un tamaño de 4,65 KB
Este documento presenta una serie de consultas y transformaciones de datos relacionadas con el estado y la antigüedad de edificios y viviendas en diversas provincias españolas, utilizando el lenguaje de programación R y sus librerías especializadas. A través de ejemplos prácticos, se abordan preguntas clave en el ámbito de la geografía urbana y la estadística aplicada.
Sección 1: Preguntas y Respuestas sobre Datos de Edificación
Pregunta 7: Municipios de Cádiz con Edificios Ruinosos
¿Cuántos municipios de más de 20.000 habitantes de la provincia de Cádiz tienen más de 10 edificios en estado ruinoso?
vivienda %>%
filter(estado == "Ruinoso", prov == 11, fecha == "Total", edificios > 10) %>%
count("municipio")
Respuesta: 21 (Huelva)
Pregunta 8: Porcentaje de Edificios Ruinosos en Barcelona Construidos Antes de 1900
En la provincia de Barcelona, ¿qué porcentaje de los edificios en estado ruinoso están construidos antes de 1900?
vivienda %>%
filter(estado == "Ruinoso", fecha %in% c("Total", "Antes de 1900"), prov == 8) %>%
spread(fecha, edificios) %>%
summarise(total = sum(Total), antig = sum(`Antes de 1900`)) %>%
mutate(porc = antig / total * 100) %>%
kable
Nota: Recuerda ejecutar library(knitr)
para la visualización de tablas.
Respuesta: 27,14286%
Pregunta 9: Identificación de Observaciones Atípicas en el Número de Edificios
¿En cuál de los estados de los edificios hay observaciones atípicas correspondientes a un menor número de edificios?
vivienda %>%
filter(fecha == "Total") %>%
ggplot(aes(x = estado, y = log(edificios), color = estado)) +
geom_boxplot()
Respuesta: Todos los estados, excepto "Ruinoso" y "Malo".
Sección 2: Configuración del Entorno y Preparación de Datos
Esta sección detalla los pasos iniciales para configurar el entorno de trabajo en R y preparar el conjunto de datos de vivienda para su posterior análisis.
Carga de Librerías Esenciales
Se cargan las librerías necesarias para la manipulación, visualización y exportación de datos en R.
library(tidyverse)
library(knitr)
library(pxR)
library(readxl)
Transformación y Limpieza de Datos de Vivienda
Se realizan operaciones de limpieza y transformación sobre el conjunto de datos inicial para adecuarlo a las consultas. Esto incluye la separación de códigos de municipio, la creación de una variable de provincia y el renombramiento de columnas.
vivienda <- viv %>%
separate(municipio, c("cod", "municipio"), extra = "merge", fill = "left")
vivienda <- vivienda %>%
mutate(prov = as.numeric(cod) %/% 1000)
vivienda <- vivienda %>%
dplyr::rename(fecha = fecha.construc)
Sección 3: Ejemplos Adicionales de Consulta de Datos
A continuación, se presentan ejemplos adicionales de consultas y manipulaciones de datos que demuestran la versatilidad de R para explorar información sobre edificios y viviendas.
Ejemplo 3.1: Suma de Edificios Ruinosos por Fecha Total
vivienda %>%
filter(estado == "Ruinoso", fecha == "Total") %>%
summarise(sum(edificios))
Ejemplo 3.2: Porcentaje de Edificios Construidos entre 1961 y 1970
vivienda %>%
filter(fecha %in% c("Total", "De 1961 a 1970"), estado == "Total") %>%
spread(fecha, edificios) %>%
summarise(total = sum(Total), part = sum(`De 1961 a 1970`)) %>%
mutate(porc = part / total * 100) %>%
kable(digits = 4)
Ejemplo 3.3: Porcentaje de Edificios Recientes en Salamanca
vivienda %>%
filter(municipio == "Salamanca", fecha %in% c("Total", "De 2002 a 2011"), estado == "Total") %>%
spread(fecha, edificios) %>%
mutate(porc = `De 2002 a 2011` / Total * 100) %>%
kable(digits = 4)
Ejemplo 3.4: Cuarta Provincia con Más Edificios Anteriores a 1900
vivienda %>%
filter(fecha == "Antes de 1900", estado == "Total") %>%
group_by(prov) %>%
summarise(ant = sum(edificios)) %>%
arrange(-ant) %>%
summarise(nth(prov, 4))
Ejemplo 3.5: Porcentaje de Edificios Antiguos por Provincia
vivienda %>%
filter(fecha %in% c("Total", "Antes de 1900"), estado == "Total") %>%
spread(fecha, edificios) %>%
group_by(prov) %>%
summarise(total = sum(Total), antig = sum(`Antes de 1900`)) %>%
mutate(porc = antig / total * 100) %>%
arrange(-porc)