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)

Entradas relacionadas: