Función mean en R

Por el equipo de promedio.net · Actualizado el

En R, el promedio de un vector se calcula con mean(x). Si el vector tiene valores faltantes (NA), el resultado es NA a menos que agregues na.rm = TRUE. Con trim = 0.1 descartas el 10 % de los valores más bajos y el 10 % de los más altos antes de promediar, lo que se conoce como media recortada.

Sintaxis

mean(x, trim = 0, na.rm = FALSE)
ArgumentoQué hace
xVector numérico o lógico (también fechas). Una columna de un data frame se pasa como df$columna
trimFracción entre 0 y 0.5 que se elimina de cada extremo antes de promediar. Con 0.5 o más, devuelve la mediana
na.rmTRUE para ignorar los NA. Por omisión es FALSE y cualquier NA contamina el resultado

Paso a paso

  1. Guarda los números en un vector con c(): notas <- c(7.5, 9, 8, 6, 10, 8.5).
  2. Llama a mean(notas).
  3. Si el resultado es NA, revisa si faltan datos y agrega na.rm = TRUE.
  4. Si hay valores extremos que no representan el caso típico, prueba trim.
  5. Redondea para mostrar con round(mean(notas), 2).

Ejemplos resueltos

Ejemplo 1: promedio con un valor faltante

notas <- c(7.5, 9, 8, 6, 10, 8.5)
mean(notas)

parciales <- c(8, NA, 9.5, 7)
mean(parciales)
mean(parciales, na.rm = TRUE)
[1] 8.166667
[1] NA
[1] 8.166667

El primer vector suma 49 y tiene 6 valores. En el segundo, el NA hace que todo el promedio sea NA: R no supone que el dato que falta vale cero ni lo ignora sin que se lo pidas. Con na.rm = TRUE divide 24.5 entre 3 valores. R imprime 7 cifras significativas, por eso ves 8.166667.

Ejemplo 2: media recortada para tiempos con un valor atípico

Diez tiempos de respuesta en segundos, uno de ellos de 58 por una falla de red:

tiempos <- c(12, 14, 13, 15, 14, 13, 58, 12, 14, 13)
mean(tiempos)
mean(tiempos, trim = 0.1)
median(tiempos)
[1] 17.8
[1] 13.5
[1] 13.5

Con 10 datos y trim = 0.1, R elimina 1 valor de cada extremo (el 12 más bajo y el 58), y promedia los 8 restantes: 108 / 8 = 13.5. El promedio simple, 17.8, está por encima de 9 de los 10 tiempos. El número de valores eliminados en cada lado es floor(n * trim). Puedes comprobar el cálculo con la calculadora de media recortada.

Ejemplo 3: proporciones con vectores lógicos

mean sobre TRUE/FALSE da la proporción de TRUE, porque R los trata como 1 y 0:

asistio <- c(TRUE, FALSE, TRUE, TRUE)
mean(asistio)

mean(notas >= 8)
[1] 0.75
[1] 0.6666667

La asistencia fue del 75 %. En la segunda línea, notas >= 8 produce un vector lógico y mean da la fracción de notas de 8 o más: 4 de 6. Es la forma idiomática en R de calcular porcentajes que cumplen una condición.

Errores comunes

Para ponderar cada valor de forma distinta, usa weighted.mean; para el valor central, median.

Fuentes

  1. R Core Team, documentación de mean (paquete base). Argumentos x, trim y na.rm. Consultado el 11 de noviembre de 2026.