Conceptos Principales del Lenguaje R - Ampliados y Enriquecidos

A continuación presento un análisis exhaustivo de estos conceptos fundamentales:

1. Gestión de Proyectos en R

Concepto Base

La clase enfatiza la importancia de usar proyectos en RStudio para organizar el trabajo de manera estructurada, con directorios relativos y configuraciones específicas.

Ampliación Conceptual

Los proyectos de R son contenedores organizacionales que establecen un entorno de trabajo específico. Cuando se crea un proyecto:

  • Se establece un directorio de trabajo específico
  • Se inicia una nueva sesión de R
  • Se cargan las opciones específicas del proyecto
  • Se mantiene un historial independiente

Estructura Recomendada de Directorios:

proyecto/
├── data/
│   ├── raw_data/      # Datos originales (solo lectura)
│   └── processed_data/ # Datos procesados
├── R/                 # Funciones personalizadas
├── scripts/          # Scripts principales
├── output/           # Resultados y gráficas
├── Rmd/              # Documentos R Markdown
└── README.md         # Documentación del proyecto

Esta estructura facilita la reproducibilidad y colaboración, permitiendo que el código funcione independientemente del sistema operativo o la ubicación específica.

2. Estructuras de Datos Fundamentales

2.1 Vectores

Concepto Base

Los vectores son conjuntos ordenados de datos del mismo tipo, creados con la función c().

Ampliación Conceptual

Los vectores son la unidad básica de datos en R. Características esenciales:

  • Homogeneidad: Todos los elementos deben ser del mismo tipo
  • Indexación: Comienza en 1 (no en 0 como Python)
  • Operaciones vectorizadas: Las operaciones matemáticas se aplican elemento por elemento

Tipos de Vectores:

  • numeric: Números reales (1.5, 3.14)
  • integer: Números enteros (1L, 5L)
  • character: Cadenas de texto ("hello", "world")
  • logical: Valores lógicos (TRUE, FALSE)
  • complex: Números complejos (1+2i)

Creación de Secuencias:

1:10              # Secuencia 1 a 10
seq(0, 1, 0.1)    # Secuencia con incrementos específicos
rep("A", 5)       # Repetición de elementos

2.2 Regla de Coerción

Concepto Base

Cuando se mezclan tipos de datos diferentes en un vector, R convierte automáticamente todos los elementos al tipo más general.

Ampliación Conceptual

La coerción de tipos sigue una jerarquía específica:

logical < integer < numeric < complex < character

Esta regla es fundamental para entender comportamientos aparentemente inesperados:

c(TRUE, 1, "hello")  # Resultado: "TRUE" "1" "hello"

Coerción Explícita:

  • as.numeric(): Convierte a numérico
  • as.character(): Convierte a carácter
  • as.logical(): Convierte a lógico

2.3 Regla del Reciclaje

Concepto Base

En operaciones entre vectores de diferentes longitudes, el vector más corto se repite para igualar la longitud del más largo.

Ampliación Conceptual

La regla del reciclaje es una característica única de R que permite operaciones flexibles:

c(1, 2, 3) + c(10, 20)  # 10+1, 20+2, 10+3
# Resultado: 11 22 13

Advertencias: R emite un warning cuando la longitud del vector largo no es múltiplo del corto, indicando un posible error lógico.

2.4 Matrices y Arreglos

Concepto Base

Las matrices son estructuras bidimensionales, mientras que los arreglos pueden tener múltiples dimensiones.

Ampliación Conceptual

Matrices: Son vectores con atributo de dimensión. Internamente se almacenan como vectores columna por columna:

matrix(1:6, nrow=2, ncol=3, byrow=TRUE)

Arreglos: Generalizan matrices a múltiples dimensiones:

array(1:24, dim=c(2,3,4))  # 2x3x4 array

Operaciones Matriciales:

  • Elemento por elemento: *, +, -, /
  • Algebra lineal: %*% (multiplicación matricial)
  • Transpuesta: t()

2.5 Factores

Concepto Base

Los factores representan variables categóricas con niveles predefinidos.

Ampliación Conceptual

Los factores son esenciales para análisis estadístico:

  • Nominales: Sin orden inherente ("rojo", "azul", "verde")
  • Ordinales: Con orden específico ("bajo" < "medio" < "alto")
factor(c("A", "B", "A"), levels=c("A", "B", "C"))
ordered(c("bajo", "medio", "alto"))

Importancia: Los modelos estadísticos tratan los factores de manera especial, aplicando contrastes apropiados para variables categóricas.

3. Listas y Data Frames

3.1 Listas

Concepto Base

Las listas pueden contener elementos de diferentes tipos y tamaños.

Ampliación Conceptual

Las listas son la estructura más flexible en R:

list(
  numeros = 1:5,
  texto = "hello",
  matriz = matrix(1:4, 2, 2),
  sublista = list(a=1, b=2)
)

Indexación:

  • lista: Retorna una lista con el primer elemento
  • lista[]: Retorna directamente el primer elemento
  • lista$nombre: Acceso por nombre

3.2 Data Frames

Concepto Base

Los data frames son estructuras tabulares similares a hojas de cálculo, donde cada columna puede ser de diferente tipo.

Ampliación Conceptual

Los data frames son listas especializadas donde cada elemento (columna) tiene la misma longitud:

data.frame(
  id = 1:3,
  nombre = c("Ana", "Luis", "María"),
  activo = c(TRUE, FALSE, TRUE)
)

Ventajas:

  • Mezclan tipos de datos
  • Indexación bidimensional: df[filas, columnas]
  • Compatibilidad con funciones estadísticas
  • Base para análisis de datos

4. Valores Especiales

Concepto Base

R maneja varios valores especiales para situaciones como datos faltantes o resultados matemáticos indefinidos.

Ampliación Conceptual

Valores Especiales en R:

  • NA (Not Available): Dato faltante
    • Preserva el tipo: NA_integer_, NA_character_
    • Contagioso: operaciones con NA resultan en NA
  • NULL: Objeto vacío o inexistente
    • Longitud cero
    • No puede ser parte de vectores
  • NaN (Not a Number): Resultado matemático indefinido
    • 0/0, sqrt(-1)
    • Subtipo de NA
  • Inf/-Inf: Infinito positivo/negativo
    • 1/0 = Inf
    • Permite aritmética: Inf + 1 = Inf

Funciones de Verificación:

is.na(), is.null(), is.nan(), is.infinite()

5. R Markdown y Documentación Reproducible

Concepto Base

R Markdown combina código R con texto para crear documentos reproducibles.

Ampliación Conceptual

R Markdown es fundamental para la ciencia de datos reproducible:

Componentes:

  1. YAML Header: Metadatos y configuración
  2. Chunks de código: Bloques ejecutables entre ````{r}`
  3. Markdown: Texto formateado

Opciones de Chunks:

  • eval: Evaluar código (TRUE/FALSE)
  • echo: Mostrar código fuente
  • include: Incluir en output final
  • warning/message: Mostrar advertencias/mensajes

Ventajas:

  • Documenta proceso analítico
  • Genera múltiples formatos (HTML, PDF, Word)
  • Facilita colaboración y revisión por pares

6. Importación de Datos

Concepto Base

R puede leer diversos formatos de archivos usando funciones específicas o paquetes como rio.

Ampliación Conceptual

Estrategias de Importación:

Formatos Comunes:

  • CSV: read.csv(), readr::read_csv()
  • Excel: readxl::read_excel()
  • SPSS/Stata/SAS: haven::read_spss(), haven::read_stata()

Paquete rio:

library(rio)
datos <- import("archivo.csv")  # Detecta formato automáticamente
export(datos, "salida.xlsx")   # Exporta en formato deseado

Mejores Prácticas:

  • Usar rutas relativas al proyecto
  • Documentar origen de datos
  • Preservar datos originales (read-only)
  • Validar importación con str(), summary()

7. Análisis Exploratorio de Datos

Concepto Base

La clase introduce gráficas básicas para explorar datos importados.

Ampliación Conceptual

Gráficos Base en R:

plot()      # Gráfico genérico
hist()      # Histograma
boxplot()   # Diagramas de caja
barplot()   # Gráfico de barras
pairs()     # Matriz de correlación

Funciones de Resumen:

summary()   # Estadísticas descriptivas
str()       # Estructura del objeto
head()      # Primeros elementos
tail()      # Últimos elementos
table()     # Tablas de frecuencia

8. Encuesta ENIGH - Contexto de Aplicación

Concepto Base

La clase utiliza datos de la Encuesta Nacional de Ingresos y Gastos de los Hogares (ENIGH) del INEGI.

Ampliación Conceptual

La ENIGH es una encuesta bianual fundamental para estudios socioeconómicos en México:

Características:

  • Muestra representativa nacional (~105,000 viviendas en 2024)
  • Microdatos de ingresos, gastos y características demográficas
  • Base para políticas públicas y estudios de desigualdad
  • Formato de datos complejos (múltiples tablas relacionadas)

Variables Clave:

  • Ingresos corrientes por fuentes
  • Gastos por categorías
  • Características del hogar y vivienda
  • Factores de expansión para representatividad nacional

Aplicaciones:

  • Análisis de pobreza y desigualdad
  • Estudios de consumo alimentario
  • Evaluación de programas sociales
  • Investigación sobre mercados laborales

Conclusión

Los conceptos presentados en la clase forman la base fundamental para el análisis de datos en R. La progresión desde estructuras simples (vectores) hasta complejas (data frames) y la integración con herramientas de documentación (R Markdown) y gestión de proyectos, proporciona una base sólida para el trabajo profesional en ciencia de datos.

La elección de utilizar datos reales (ENIGH) demuestra la relevancia práctica de estos conceptos en investigación socioeconómica, preparando a los estudiantes para aplicaciones del mundo real donde la comprensión profunda de las estructuras de datos es esencial para análisis rigurosos y reproducibles.

Lenguaje R Prácticos

Author

Juan Fuentes

Publish Date

08 - 12 - 2025