Introducción

Este taller desarrolla una exploración geográfica de la base world del paquete spData en RStudio. Se revisan los registros, se representan límites nacionales y variables socioeconómicas, se cambia la proyección cartográfica y se seleccionan países de Sudamérica. El objetivo es comprender cómo se relacionan las geometrías con sus atributos y cómo comunicar esa información mediante mapas.

Paso 1. Preparación del entorno de trabajo

Se cargaron tres bibliotecas: sf, para manejar información espacial; ggplot2, para elaborar mapas; y dplyr, para seleccionar y organizar los datos. Después se cargó explícitamente la base world del paquete spData. Esta instrucción permite que el documento encuentre los datos al ejecutarse desde el inicio y corrige el error «objeto world no encontrado».

La configuración inicial muestra el código y oculta mensajes de carga para facilitar la lectura del documento.

Sentido geográfico del proceso. La información se organiza en unidades territoriales: cada país tiene una geometría y atributos asociados. Esta relación permite localizar fenómenos y comparar sus distribuciones. La unidad de análisis es el país y el alcance es mundial; por ello, el ejercicio describe diferencias entre territorios nacionales.

knitr::opts_chunk$set(echo = TRUE, message = FALSE, warning = FALSE)
library(sf)
## Linking to GEOS 3.14.1, GDAL 3.12.1, PROJ 9.7.1; sf_use_s2() is TRUE
library(ggplot2)
library(dplyr)
## 
## Adjuntando el paquete: 'dplyr'
## The following objects are masked from 'package:stats':
## 
##     filter, lag
## The following objects are masked from 'package:base':
## 
##     intersect, setdiff, setequal, union
data("world", package = "spData")

Bibliotecas y herramientas utilizadas

Herramienta Función en el procesamiento
spData Proporciona la base espacial world, cargada mediante data().
sf Maneja geometrías, extrae los contornos y transforma el sistema de coordenadas.
dplyr Selecciona los países de Sudamérica mediante filter().
ggplot2 Construye los mapas temáticos y organiza sus colores, títulos y leyendas.
R base Permite revisar registros con head() y elaborar mapas con plot().
knitr y rmarkdown Ejecutan el código e integran texto, tablas y mapas en el documento HTML.

Paso 2. Revisión de los datos de trabajo

Se consultaron los primeros cinco registros con head(world, 5). Esta revisión permite reconocer los nombres de los países, sus atributos y la columna de geometría, que almacena su representación espacial. No se modificaron los datos originales.

Sentido geográfico del proceso. Se reconoce la relación entre el territorio representado y la información que lo caracteriza. La inspección de cinco filas es una revisión inicial, no una validación completa de la calidad de la base. Antes de una investigación se deben verificar la fecha, las unidades, los datos faltantes y el sistema de referencia de todas las capas utilizadas.

head(world, 5)
## Simple feature collection with 5 features and 10 fields
## Geometry type: MULTIPOLYGON
## Dimension:     XY
## Bounding box:  xmin: -180 ymin: -18.28799 xmax: 180 ymax: 83.23324
## Geodetic CRS:  WGS 84
## # A tibble: 5 × 11
##   iso_a2 name_long  continent region_un subregion type  area_km2     pop lifeExp
##   <chr>  <chr>      <chr>     <chr>     <chr>     <chr>    <dbl>   <dbl>   <dbl>
## 1 FJ     Fiji       Oceania   Oceania   Melanesia Sove…   1.93e4  8.86e5    70.0
## 2 TZ     Tanzania   Africa    Africa    Eastern … Sove…   9.33e5  5.22e7    64.2
## 3 EH     Western S… Africa    Africa    Northern… Inde…   9.63e4 NA         NA  
## 4 CA     Canada     North Am… Americas  Northern… Sove…   1.00e7  3.55e7    82.0
## 5 US     United St… North Am… Americas  Northern… Coun…   9.51e6  3.19e8    78.8
## # ℹ 2 more variables: gdpPercap <dbl>, geom <MULTIPOLYGON [°]>

Paso 3. Representación de los contornos de los países

Se extrajo la geometría con st_geometry() y se dibujaron los límites de los países. Este primer mapa permite revisar visualmente la distribución de las unidades espaciales antes de representar una variable temática. El relleno gris es uniforme y no expresa diferencias estadísticas.

Sentido geográfico del proceso. Los polígonos muestran la organización político-territorial y permiten reconocer posiciones relativas, extensión y vecindad entre países. Los límites administrativos definen las unidades de comparación, pero no representan necesariamente las fronteras de ecosistemas o regiones culturales. El mapa ofrece un contexto de localización para los análisis posteriores.

plot(st_geometry(world), col = "grey90", border = "grey40",
     main = "Países del mundo")

Paso 4. Mapa temático de esperanza de vida

Se seleccionó la variable lifeExp, correspondiente a la esperanza de vida al nacer, y se representó con la función básica plot(). Los colores permiten comparar los valores contenidos en la base entre países. Se trata de una exploración descriptiva y no de una explicación de sus causas.

Sentido geográfico del proceso. El mapa temático permite explorar la distribución territorial de un indicador demográfico y formular preguntas sobre diferencias regionales. Cada valor resume un país y puede ocultar desigualdades internas entre ciudades, áreas rurales o grupos de población. La cercanía visual de valores similares no demuestra por sí sola una relación espacial estadísticamente significativa.

plot(world["lifeExp"], main = "Esperanza de vida al nacer")

Paso 5. Mejora de la presentación del mapa

Se elaboró una segunda versión con ggplot2 y geom_sf(). El color de cada país se vinculó a lifeExp, se agregó una leyenda en años y se aplicó un diseño sencillo. Los países sin información aparecen en gris: ese color indica ausencia de datos, no una esperanza de vida baja.

Sentido geográfico del proceso. La simbología convierte los valores en una lectura espacial comprensible. La leyenda permite interpretar el color y distinguir diferencias de magnitud; el título y la fuente sitúan el contenido. La mayor superficie visual de un país puede atraer más atención, aunque el indicador sea un promedio y no una cantidad total de población.

ggplot(world) +
  geom_sf(aes(fill = lifeExp), color = "white", linewidth = 0.1) +
  scale_fill_viridis_c(name = "Años", na.value = "grey85") +
  labs(title = "Esperanza de vida por país", caption = "Fuente: spData::world") +
  theme_minimal()

Paso 6. Cambio de proyección y representación del PIB por habitante

Se transformaron las geometrías a la proyección Equal Earth mediante st_transform(). Esta proyección conserva las proporciones de superficie, lo que favorece la comparación visual de áreas en un mapa mundial. La transformación cambia las coordenadas de representación, sin modificar los valores socioeconómicos.

Después se representó gdpPercap, el PIB por habitante de la base, con una escala de color logarítmica. Esta escala facilita visualizar diferencias cuando existen valores muy separados; la leyenda mantiene su interpretación en dólares por habitante. El gris identifica países sin datos.

Sentido geográfico del proceso. Elegir una proyección forma parte del análisis: representar una superficie curva en un plano implica distorsiones. Equal Earth conserva áreas relativas, aunque no conserva todas las formas, distancias y direcciones. El PIB por habitante permite comparar una dimensión económica entre países, pero no muestra la distribución interna del ingreso. Comparar este mapa con el de esperanza de vida permite plantear preguntas; establecer relaciones requiere análisis adicionales y comprobar la compatibilidad temporal de los indicadores.

world_ee <- st_transform(world, "+proj=eqearth")
ggplot(world_ee) +
  geom_sf(aes(fill = gdpPercap), color = "white", linewidth = 0.1) +
  scale_fill_viridis_c(name = "PIB per cápita (USD)", trans = "log10",
                       na.value = "grey85") +
  labs(title = "PIB per cápita en proyección Equal Earth",
       caption = "Fuente: spData::world") +
  theme_minimal()

Paso 7. Selección de Sudamérica y localización de Colombia

Se filtraron los países cuyo atributo continent corresponde a Sudamérica. Luego se identificó a Colombia mediante name_long y se resaltó en rojo, mientras los demás países se dejaron en gris. El resultado permite ubicar a Colombia dentro del continente mediante los límites nacionales disponibles en la base.

Sentido geográfico del proceso. Se pasa de una vista mundial a un encuadre continental para facilitar la orientación del lector. El filtro selecciona países por un atributo, sin recortar sus geometrías. Resaltar a Colombia establece un referente de localización y permite reconocer su posición respecto de los demás países sudamericanos. El nivel de detalle corresponde a una representación de países.

sudam <- world |> filter(continent == "South America")
ggplot(sudam) +
  geom_sf(aes(fill = name_long == "Colombia"), color = "grey30") +
  scale_fill_manual(values = c("grey85", "firebrick"), guide = "none") +
  labs(title = "Sudamérica con Colombia resaltada",
       caption = "Fuente: spData::world") +
  theme_minimal()

Paso 8. Generación y revisión del documento

El archivo se procesa con Knit en RStudio. Durante este proceso se ejecutan los bloques de código en orden y se integran las explicaciones, la tabla y los mapas en un documento HTML. Si algún bloque produce un error, debe corregirse antes de completar la salida.

Sentido geográfico del proceso. La presentación conjunta de datos, procedimientos y mapas permite revisar cómo se construyó cada representación territorial. La revisión final debe comprobar que título, variable, unidades, ámbito espacial y fuente coincidan con lo mostrado. Un mapa de localización orienta al lector; un mapa temático representa una variable. El ejercicio realiza una exploración descriptiva de los atributos disponibles, sin analizar cambios temporales.

Los mapas corresponden a los datos de ejemplo de spData::world. Su utilidad en este taller es mostrar la secuencia de carga, inspección, representación, transformación y selección espacial. La fecha de elaboración del documento no representa el año de observación de los indicadores de la base.

Bibliografía

Las siguientes referencias se obtienen de las citas recomendadas por R y por las versiones instaladas de los paquetes utilizados en el procesamiento.