1  Introducción a R y RStudio

NoteResultados de aprendizaje
  • R1. Entender conceptos básicos de programación en R y su sintaxis.

1.1 ¿Qué es R y por qué lo usamos en Geografía?

R es un lenguaje de programación orientado al análisis de datos y la estadística. Para un/a geógrafo/a tiene tres grandes ventajas:

  • Es gratuito y de código abierto.
  • Tiene una enorme cantidad de paquetes especializados en datos espaciales (sf, terra, tmap, etc.).
  • Permite construir análisis reproducibles: el mismo script siempre produce el mismo resultado, y queda documentado.

RStudio es el entorno de trabajo (IDE) desde el cual escribimos y ejecutamos código R cómodamente. Tiene cuatro paneles principales:

Panel Para qué sirve
Editor de scripts Escribir y guardar tu código (.R, .qmd).
Consola Ejecutar comandos y ver resultados inmediatos.
Environment Ver los objetos (datos) que tienes cargados.
Files / Plots / Help Navegar archivos, ver gráficos y ayuda.

1.2 Trabajar con proyectos y el directorio de trabajo

El directorio de trabajo es la carpeta donde R busca y guarda archivos por defecto. Puedes consultarlo y modificarlo así:

# Consultar el directorio actual
getwd()

# Definir la carpeta de trabajo (ajusta esta ruta a tu computador)
setwd("C:/702336-1_SebastianBaeza/01_Datos")
TipMejor: usa Proyectos de RStudio

En lugar de escribir setwd() con rutas absolutas (que solo funcionan en tu computador), crea un Proyecto de RStudio (File > New Project). El directorio de trabajo se fija automáticamente en la carpeta del proyecto y tu código funcionará en cualquier computador.

1.3 La sintaxis básica de R

1.3.1 Objetos y asignación

En R guardamos información en objetos usando el operador de asignación <-. Por ejemplo, un objeto que guarda un solo número:

poblacion_conce <- 235000
poblacion_conce
[1] 235000

1.3.2 Vectores

Un vector agrupa varios valores del mismo tipo. Se construyen con la función c() (de combine):

comunas    <- c("Concepción", "Talcahuano", "Chiguayante", "San Pedro")
poblacion  <- c(235000, 163000, 89000, 145000)
area_km2   <- c(221.6, 92.3, 71.5, 112.5)

comunas
[1] "Concepción"  "Talcahuano"  "Chiguayante" "San Pedro"  

1.3.3 Data frames

Un data frame es una tabla: cada columna es un vector y todas tienen el mismo largo. Es la estructura central para trabajar con datos:

demografia <- data.frame(comunas, poblacion, area_km2)
demografia

1.3.4 Crear nuevas columnas y resumir

Accedemos a una columna con el signo $. Aquí calculamos la densidad poblacional (habitantes por km²) y la guardamos como nueva columna:

demografia$densidad <- demografia$poblacion / demografia$area_km2
demografia

La función summary() entrega un resumen estadístico de toda la tabla:

summary(demografia)
      comunas     poblacion         area_km2        densidad   
 Length   : 4   Min.   : 89000   Min.   : 71.5   Min.   :1060  
 N.unique : 4   1st Qu.:131000   1st Qu.: 87.1   1st Qu.:1199  
 N.blank  : 0   Median :154000   Median :102.4   Median :1267  
 Min.nchar: 9   Mean   :158000   Mean   :124.5   Mean   :1340  
 Max.nchar:11   3rd Qu.:181000   3rd Qu.:139.8   3rd Qu.:1408  
                Max.   :235000   Max.   :221.6   Max.   :1766  

Ejercicios

ImportantEjercicio 1.1 — Estaciones de calidad del aire

Una red de monitoreo registró el material particulado fino (MP2.5) y la temperatura en cuatro estaciones. Tu tarea:

  1. Crea tres vectores con los siguientes datos:

    Estación MP2.5 Temperatura
    Centro 45 18
    Puerto 60 16
    Cerro 20 14
    Valle 35 22
  2. Agrúpalos en un data frame llamado calidad_aire.

  3. Crea una columna indice_riesgo que sea el producto de mp25 por temperatura.

  4. Calcula el promedio del índice de riesgo con mean().

  5. Exporta la tabla a un archivo CSV con write.csv().

estacion    <- c("Centro", "Puerto", "Cerro", "Valle")
mp25        <- c(45, 60, 20, 35)
temperatura <- c(18, 16, 14, 22)

calidad_aire <- data.frame(estacion, mp25, temperatura)

calidad_aire$indice_riesgo <- calidad_aire$mp25 * calidad_aire$temperatura

mean(calidad_aire$indice_riesgo)

write.csv(calidad_aire, "mis_resultados.csv")