Función aggregate de R: ahorra horas de trabajo
Si trabajas con datos en R, hay una función base que mucha gente pasa por alto y que puede ahorrarte horas de trabajo: aggregate().
En este artículo te voy a explicar qué es la función aggregate en R, para qué sirve y cómo usarla con ejemplos claros. Es una de esas funciones que, cuando la entiendes bien, te simplifica muchísimo el análisis de datos.
¿Para qué sirve la función aggregate en R?
La función aggregate() se utiliza para resumir datos aplicando una función (media, suma, máximo, etc.) por grupos.
Dicho de forma sencilla:
Te permite calcular estadísticas de una variable, separando los datos por una o varias categorías.
Es especialmente útil cuando quieres responder preguntas como:
-
¿Cuál es la media por grupo?
-
¿Cuál es el total por categoría?
- ¿Cómo resumir datos sin escribir bucles?
Sintaxis básica de aggregate()
La estructura general de la función es esta:
aggregate(x, by, FUN)
Donde:
-
x: variable (o variables) que quieres resumir
-
by: lista de variables por las que quieres agrupar
-
FUN: función que se va a aplicar (mean, sum, max, etc.)
Vamos a verlo con ejemplos reales.
Ejemplo básico con aggregate en R
Usamos el dataset mtcars, que viene incluido en R.
Queremos calcular el consumo medio (mpg) por número de cilindros (cyl).
aggregate(mpg ~ cyl, data = mtcars, FUN = mean)
Aquí pasan varias cosas importantes:
-
mpg ~ cylindica qué se resume y por qué se agrupa -
data = mtcarsespecifica el dataset -
FUN = meanaplica la media
El resultado es una tabla clara y directa, sin complicaciones.
Aggregate con varias variables
También puedes resumir varias variables a la vez.
Por ejemplo, media de mpg y hp por cilindros:
aggregate(cbind(mpg, hp) ~ cyl, data = mtcars, FUN = mean)
Esto es muy útil cuando quieres resúmenes rápidos sin repetir código.
Usar distintas funciones con aggregate()
No estás limitado a la media. Puedes usar prácticamente cualquier función:
Suma:
aggregate(mpg ~ cyl, data = mtcars, FUN = sum)
Máximo:
aggregate(mpg ~ cyl, data = mtcars, FUN = max)
Mínimo:
aggregate(mpg ~ cyl, data = mtcars, FUN = min)
Funciones propias:
Incluso puedes definir tu propia función:
aggregate(mpg ~ cyl, data = mtcars, FUN = function(x) {
max(x) - min(x)
})
Esto hace que aggregate() sea mucho más potente de lo que parece.
Agrupar por más de una variable
También puedes agrupar por varias columnas.
Por ejemplo, consumo medio por cilindros y tipo de transmisión (am):
aggregate(mpg ~ cyl + am, data = mtcars, FUN = mean)
Esto te devuelve un resumen mucho más detallado sin escribir código complejo.
Errores típicos al usar aggregate()
Algunos fallos muy comunes cuando empiezas:
-
Olvidar usar
data = -
No usar la fórmula (
y ~ x) -
Pensar que solo sirve para una variable
-
No entender que
bydebe ser una lista o una fórmula
Son errores normales, y una vez los entiendes, aggregate() se vuelve muy cómoda.
¿Cuándo usar aggregate y cuándo no?
aggregate() es ideal cuando:
-
Quieres resúmenes rápidos
-
Trabajas con R base
-
No necesitas pipelines complejos
Si tu análisis es más avanzado, quizá prefieras dplyr, pero aggregate sigue siendo una herramienta clave que conviene conocer.
Resumen rápido: función aggregate en R
Qué tienes que recordar:
-
Sirve para resumir datos por grupos
-
Funciona con fórmulas
-
Permite usar cualquier función
-
Ahorra mucho código repetitivo
-
Está incluida en R base
Si entiendes esto, ya sabes usar aggregate() correctamente.
Aprende R sin perder tiempo
Y si quieres aprender R de forma estructurada, en la academia online tienes cursos paso a paso para ir mucho más rápido y sin frustrarte:
-
R desde cero
-
Funciones clave de R base
-
Análisis de datos
-
Estadística aplicada