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.