La función mean() en R: cómo calcular la media

mean() calcula la media aritmética: suma todos los valores y los divide entre cuántos son. Es probablemente la primera función estadística que vas a usar en R, y también una de las que más quebraderos de cabeza da → por culpa de los NA.

Ejemplo simple

Le pasas un vector numérico y ya está:

notas <- c(4, 6, 7, 8, 10)

mean(notas)

Devuelve 7. Poco más que explicar.

Cuando aparecen los NA

Aquí viene lo importante. Si un solo valor falta, el resultado entero se va al traste:

notas <- c(4, 6, NA, 8, 10)

mean(notas)

Esto no devuelve 7, devuelve NA. R no se inventa el dato que falta, así que no puede darte una media.

La solución es el argumento na.rm:

mean(notas, na.rm = TRUE)

Ahora sí calcula la media con los cuatro valores que hay: 7.

Este argumento aparece en casi todas las funciones estadísticas de R (median(), sd(), sum()…). Acostúmbrate a él desde el principio.

Ejemplo algo más completo: medias por columna

Lo normal es que no tengas un vector suelto, sino una tabla. Para la media de una columna:

alumnos <- data.frame(
  nombre = c("Ana", "Luis", "Marta", "Iván"),
  examen = c(7, 5, 9, NA),
  practica = c(8, 6, 10, 7)
)

mean(alumnos$examen, na.rm = TRUE)

Y si quieres la media de todas las columnas numéricas de golpe, sin repetir la línea una y otra vez:

sapply(alumnos[, c("examen", "practica")], mean, na.rm = TRUE)

sapply() recorre las columnas que le indicas y aplica mean() a cada una, devolviéndote un resultado con nombre por columna.

Una advertencia para terminar: la media es muy sensible a los valores extremos. Si tus datos tienen algún dato disparado, échale un ojo también a la mediana, porque probablemente represente mejor la realidad.