Saltar al contenido principal
eLearner.app
Módulo 3 · Lección 2 de 26/10 en el curso~15 min
Lecciones del módulo (2/2)

Exploración y Agregación

R nace principalmente como un entorno estadístico, por lo que proporciona numerosas funciones nativas para analizar, resumir y comprender la distribución de datos en vectores o tablas.

Funciones Estadísticas Básicas

R permite calcular con extrema facilidad los principales índices de tendencia central y variabilidad en vectores numéricos:

  • mean(x): Calcula la media aritmética de los elementos.
  • median(x): Calcula la mediana (el valor central).
  • sd(x): Calcula la desviación estándar (medida de la dispersión de los datos).
  • min(x) y max(x): Devuelven el valor mínimo y máximo respectivamente.
Code
values <- c(10, 12, 15, 18, 20, 22)

avg <- mean(values)
dispersion <- sd(values)

cat("Media:", avg, "- Dev. Std:", round(dispersion, 2), "\n")

Gestión de Datos Faltantes (NA)

En el mundo real, los conjuntos de datos contienen a menudo valores faltantes, representados en R por la entidad especial NA (Not Available).

Si intentas calcular la media o cualquier otro agregado en un vector que contiene aunque sea un solo NA, R devolverá NA como resultado. Para ignorar los valores faltantes, debes pasar el argumento lógico na.rm = TRUE (NA remove):

Code
temperatures <- c(18, 21, NA, 24, 19)

# Esto devolverá NA
print(mean(temperatures))

# Esto ignorará el NA y realizará el cálculo sobre los valores válidos
print(mean(temperatures, na.rm = TRUE))

Resumen Global con summary()

La función summary() es una herramienta potente que proporciona una visión estadística completa de un vector o de un Data Frame completo, mostrando el mínimo, primer cuartil, mediana, media, tercer cuartil y máximo:

Code
prices <- c(5, 10, 15, 20, 100)
print(summary(prices))

Agregación de Datos con aggregate

Al trabajar con data frames, es común querer calcular estadísticas de resumen (como la media o la suma) por grupos o categorías. La función aggregate() en R simplifica este proceso:

Code
df <- data.frame(
  department = c("HR", "IT", "HR", "IT"),
  salary = c(3000, 4500, 3200, 4800)
)

# Calcula la media de los salarios por departamento
avg_salaries <- aggregate(salary ~ department, data = df, FUN = mean)
print(avg_salaries)

La sintaxis salary ~ department significa "analiza la variable salary en función de la variable department". El argumento FUN = mean especifica que queremos calcular la media aritmética de cada grupo.

Filtrado Avanzado con subset

La función subset() proporciona una forma intuitiva y elegante de extraer subconjuntos de filas y columnas de un data frame, evitando el uso de corchetes complejos:

Code
employees <- data.frame(
  name = c("Alice", "Bob", "Charlie"),
  age = c(25, 34, 29),
  active = c(TRUE, FALSE, TRUE)
)

# Filtra solo los empleados activos con edad superior a 28
active_employees <- subset(employees, active == TRUE & age > 28)

Pruébalo tú

Ejercicio#r.m3.l2.e1
Intentos: 0Cargando...

Dado el vector temperatures, calcula la media y guárdala en la variable mean_temp. Luego calcula la mediana y guárdala en median_temp.

Cargando editor...
Mostrar pista

Usa mean_temp <- mean(temperatures) y median_temp <- median(temperatures)

Solución disponible después de 3 intentos

Ejercicio#r.m3.l2.e2
Intentos: 0Cargando...

Dado el vector scores que contiene un valor NA, calcula la desviación estándar del vector excluyendo los valores faltantes y guárdala en la variable sd_scores.

Cargando editor...
Mostrar pista

Usa la función sd() con el argumento na.rm = TRUE: sd_scores <- sd(scores, na.rm = TRUE)

Solución disponible después de 3 intentos

Ejercicio#r.m3.l2.e3
Intentos: 0Cargando...

Dado el data frame df, obtén el resumen estadístico (summary) de la columna values y guárdalo en la variable stats_summary.

Cargando editor...
Mostrar pista

Extrae la columna usando el operador $ y pásala a summary(): stats_summary <- summary(df$values)

Solución disponible después de 3 intentos

Ejercicio#r.m3.l2.e4
Intentos: 0Cargando...

Dado el data frame sales, usa la función aggregate() para calcular la suma (FUN = sum) de la columna revenue agrupada por la columna region. Guarda el resultado en la variable region_sales.

Cargando editor...
Mostrar pista

Usa: region_sales <- aggregate(revenue ~ region, data = sales, FUN = sum)

Solución disponible después de 3 intentos

Ejercicio#r.m3.l2.e5
Intentos: 0Cargando...

Dado el data frame products, usa la función subset() para filtrar solo los productos que pertenecen a la categoría 'Electronics' (category == 'Electronics') y que tienen un precio mayor que 100 (price > 100). Guarda el resultado en la variable expensive_electronics.

Cargando editor...
Mostrar pista

Usa: expensive_electronics <- subset(products, category == 'Electronics' & price > 100)

Solución disponible después de 3 intentos