Cómo calcular la mediana en R

Por el equipo de promedio.net · Actualizado el

La mediana en R se calcula con median(x): devuelve el valor central de los datos ordenados, o el promedio de los dos centrales si la cantidad es par. No hace falta ordenar antes. Igual que mean, devuelve NA si falta algún dato, salvo que agregues na.rm = TRUE. Para cuartiles y otros percentiles, usa quantile(x, probs).

Sintaxis

median(x, na.rm = FALSE)
quantile(x, probs = c(0.25, 0.5, 0.75), na.rm = FALSE, type = 7)
tapply(valores, grupos, median)        # mediana por grupo

quantile(x, 0.5) da el mismo número que median(x) con cualquier type que interpole, aunque con un nombre (50%) en el resultado.

Paso a paso

  1. Guarda los datos en un vector o toma la columna con df$columna.
  2. Llama a median(x); agrega na.rm = TRUE si hay faltantes.
  3. Compárala con mean(x): si están lejos, hay asimetría o valores extremos.
  4. Si necesitas cuartiles, usa quantile y anota qué type usaste.

Ejemplos resueltos

Ejemplo 1: precios de vivienda con un valor extremo

Seis departamentos, en miles de pesos:

precios <- c(1850, 2100, 1990, 2400, 9800, 2250)
median(precios)
mean(precios)
[1] 2175
[1] 3398.333

Ordenados quedan 1850, 1990, 2100, 2250, 2400 y 9800. Con 6 valores, los centrales son el tercero y el cuarto: (2100 + 2250) / 2 = 2175. El departamento de 9,800 sube el promedio a 3,398, una cifra mayor que 5 de los 6 precios. Por eso los reportes inmobiliarios suelen usar la mediana.

Ejemplo 2: cuartiles y el argumento type

quantile(precios, c(0.25, 0.5, 0.75))
quantile(precios, 0.75, type = 6)
   25%    50%    75% 
2017.5 2175.0 2362.5 
 75% 
4250 

R ofrece nueve métodos para calcular cuantiles. El de omisión, type = 7, es el mismo de CUARTIL.INC en Excel y de numpy.quantile. type = 6 es el que usan SPSS y Minitab, y con pocos datos da un tercer cuartil muy distinto: 4,250 contra 2,362.5. La mediana coincide en ambos. Si comparas resultados entre programas, revisa el método antes de pensar que hay un error. La teoría está en cuartiles.

Ejemplo 3: mediana por grupo

df <- data.frame(
  area   = c("Ventas", "Ventas", "Ventas", "Ventas", "Sistemas", "Sistemas", "Sistemas"),
  sueldo = c(14500, 16200, 15800, 61000, 28000, 31500, 26000)
)
tapply(df$sueldo, df$area, median)
aggregate(sueldo ~ area, data = df, FUN = median)
Sistemas   Ventas 
   28000    16000 
      area sueldo
1 Sistemas  28000
2   Ventas  16000

tapply devuelve un vector con nombres; aggregate devuelve un data frame, más cómodo para seguir trabajando o exportar. Los grupos salen en orden alfabético. Con dplyr: df |> group_by(area) |> summarise(mediana = median(sueldo)).

Errores comunes

Comprueba el resultado con la calculadora de mediana o la de cuartiles. Si necesitas la diferencia conceptual con el promedio, lee mediana.

Fuentes

  1. R Core Team, documentación de median (paquete stats). Argumento na.rm. Consultado el 11 de noviembre de 2026.
  2. R Core Team, documentación de quantile (paquete stats). Los nueve tipos de cálculo; type = 7 por omisión. Consultado el 11 de noviembre de 2026.