Entradas

Mostrando las entradas de octubre, 2025

¿Cómo extraer nombres y valores de listas?

Imagen
Si vienes del mundo de Python y estás comenzando a trabajar con R para análisis de datos deportivos, una de las primeras dificultades que encontrarás es cómo manejar estructuras de datos similares a los diccionarios de Python . En R, estas estructuras se llaman listas con nombres (named lists), y trabajar con ellas requiere entender algunas funciones clave. Esta guía te mostrará cómo extraer información de listas en R usando la notación completa de paquetes, fundamental para escribir código reproducible y profesional. 📚 Traductor: terminología Python → R Antes de comenzar, aquí está tu "diccionario de traducción" para entender las equivalencias: Concepto Python Equivalente R Función/Sintaxis Explicación dict list() con nombres list(a=1, b=2) Lista con elementos nombrados dict.keys() names() base::names(lista) Extraer nombres/llaves dict.values() unlist() base::unlist(lista) Extraer valores (mismo tipo) dict.items() tibble::enframe() tibb...

¿Cómo hacemos filtrado y extracción de listas anidadas utilizando `purrr`?

Imagen
Trabajar con datos JSON y listas anidadas es una tarea común en el análisis de datos moderno. Ya sea consumiendo APIs, procesando respuestas de servicios web, o manejando metadatos complejos, saber cómo filtrar y extraer información de estructuras anidadas es una habilidad esencial. En este tutorial, exploraremos múltiples métodos para filtrar listas anidadas en R , centrándonos en el poderoso paquete purrr y su integración con el ecosistema tidyverse. El Problema: Listas Dentro de Listas Imagina que tienes metadatos de una tabla con información sobre sus campos, y necesitas identificar cuáles son de tipo "string". Esta es una situación típica cuando trabajas con: APIs REST Esquemas de bases de datos Metadatos de archivos Configuraciones JSON Preparación: Creando Nuestro Ejemplo Primero, creemos una estructura de lista anidada típica que podrías encontrar al parsear JSON: # Instalar paquetes si es necesario install.packages("purrr") install.packages(...

¿Cómo puedo expandir columnas anidadas en R? Guía completa de `tidyr::unnest_wider()`

Imagen
  Cuando trabajas con datos complejos en R, es común encontrar columnas anidadas que contienen tibbles o listas dentro de cada celda. La función tidyr::unnest_wider() es tu herramienta ideal cuando necesitas expandir estos datos horizontalmente , convirtiendo cada elemento de la lista en una columna separada. ¿Qué es tidyr::unnest_wider()? tidyr::unnest_wider() es una función del paquete tidyr que expande columnas anidadas en múltiples columnas del tibble principal. A diferencia de tidyr::unnest() que expande en filas, unnest_wider() expande horizontalmente . Sintaxis Básica tibble_desanidado <- tibble_original %>% tidyr::unnest_wider(columna_anidada) Caso de Uso 1: Lista de Vectores Nombrados Este es el caso más común: tienes una columna que contiene listas con elementos nombrados. # Crear datos de ejemplo datos_ejemplo <- tibble::tibble( id = 1:3, info = list( c(nombre = "Ana", edad = "25", ciudad = "Madrid"), c(nomb...

¿Cuál es la evaluación tidy en R? De strings a símbolos guía completa de `sym()`

Imagen
Si alguna vez has intentado usar el nombre de una columna almacenado en una variable dentro de dplyr y te has topado con errores, este artículo es para ti. La función sym() y la evaluación tidy son conceptos fundamentales que todo analista de datos en R debería dominar. El Problema: Cuando los Strings No Son Suficientes Imagina que estás trabajando con datos electorales y quieres calcular el total de votos por partido, pero el nombre del partido está almacenado en una variable: library(dplyr) party_name <- "MOVIMIENTO CIUDADANO" # ❌ Esto NO funciona datos |> summarize(partido = sum(party_name)) # Error: no puede sumar un string # ✅ Esto funciona, pero es inflexible datos |> summarize(partido = sum(`MOVIMIENTO CIUDADANO`)) # Funciona, pero ¿qué pasa si el nombre cambia? El problema es que dplyr necesita trabajar con nombres de columnas (símbolos), no con texto (strings). Aquí es donde entra sym() . ¿Qué es sym() y de Dónde Viene? Origen y Librería ...