Curso
Cuando se trata de resumir datos numéricos en R, calcular la media suele ser el primer paso. De todos modos, suele ser lo primero que hago.
Ahora bien, "media" no tiene por qué referirse necesariamente a la media, pero en este artículo asumo que sí porque voy a mostrarte cómo trabajar con la función mean()
de R, que es la herramienta estándar de R para este fin.
¿Qué hace mean() en R?
La función mean()
calcula la media aritmética de datos numéricos. En otras palabras, suma todos los valores de tu vector o columna y divide por el número total de valores presentes. Como mean()
forma parte de R base, no es necesario cargar paquetes adicionales. Así estará lista para usar en cuanto abras R.
Sintaxis de la función mean()
Así que ya sabemos lo que consigue mean()
, pero veamos su sintaxis básica para que puedas empezar a aplicarla:
mean(x, na.rm = FALSE, ...)
-
x
: Un vector u objeto numérico. -
na.rm
: Lógico. SiTRUE
,mean()
ignorará los valores deNA
.
A medida que avancemos, debes saber que el manejo de los datos que faltan y el trabajo con diferentes estructuras de datos introducen algunos matices, así que estate atento.
Calcular la media de un vector numérico en R
Probablemente lo más básico sea calcular la media de un vector:
daily_temperatures <- c(72, 68, 75, 70, 69)
mean(daily_temperatures)
Esta línea devuelve la media de 72, 68, 75, 70 y 69, que es 70,8.
Manejo de valores perdidos con na.rm en R
Los conjuntos de datos reales tienen valores perdidos. Si tus datos contienen algún elemento que falta, mean()
devolverá, como comportamiento por defecto, NA
. Esto puede sorprenderte si no te lo esperas, por eso nos tomamos el tiempo de conocer el argumento na.rm
.
survey_scores <- c(82, 90, NA, 88, 85)
mean(survey_scores)
Si lo ejecutas, obtendrás NA
. Para indicar a R que ignore los valores que faltan, sólo tienes que poner na.rm = TRUE
:
mean(survey_scores, na.rm = TRUE)
Ahora, mean()
calcula la media utilizando sólo las cifras disponibles.
Utilizar mean() con marcos de datos en R
Extendamos su uso a los marcos de datos, que son una estructura típica de los conjuntos de datos en R. Si quieres la media de una columna concreta, basta con referirte a ella mediante el operador $
:
student_scores <- data.frame(
student_name = c("Amir", "Bianca", "Carlos"),
math_score = c(92, 85, 88)
)
mean(student_scores$math_score)
Calcula la puntuación media de todos los alumnos de tu marco de datos. Puedes aplicar este enfoque a cualquier columna numérica (pero tiene que ser una columna numérica).
Media de los valores lógicos en R
Hasta ahora nos hemos centrado en los datos numéricos, pero quizá te sorprenda saber que mean()
también funciona con vectores lógicos. Éste es un detalle pequeño pero importante que he pasado por alto hasta ahora.
Puedes utilizar mean()
con valores lógicos porque, en R, TRUE
se trata como 1
y FALSE
como 0
, por lo que al tomar la media de un vector lógico se obtendrá la proporción de valores de TRUE
. Esto puede ser útil si tienes que resumir resultados binarios.
quiz_passed_flags <- c(TRUE, FALSE, TRUE, TRUE)
mean(quiz_passed_flags)
Aquí, el resultado es 0,75, ya que 3 de cada 4 valores son TRUE
.
Encontrar la media ponderada en R
A veces necesitas una media ponderada, cuando piensas que distintos valores contribuyen de forma desigual al resultado. Entra en weighted.mean()
:
course_grades <- c(88, 92, 75)
assignment_weights <- c(0.3, 0.4, 0.3)
weighted.mean(course_grades, assignment_weights)
Si utilizas weighted.mean()
, podrás tener en cuenta la importancia o frecuencia variable entre tus valores. mean()
no lo hará por sí solo.
Algunas cosas a tener en cuenta
Hasta ahora he mencionado la mayoría de estas cosas, pero permíteme apuntar posibles problemas o notas en un solo lugar:
-
Datos no numéricos: Si tu vector o columna no es numérico o lógico,
mean()
arrojará un error. -
NA manipulación: Olvidarte de utilizar
na.rm = TRUE
cuando te faltan datos te hará tropezar siempre. -
Vectores vacíos:
mean(numeric(0))
devuelveNA
con una advertencia.
Funciones similares en R
R proporciona varias funciones relacionadas que te ayudan a explorar tus datos desde distintos ángulos. Todas ellas están también en R base, lo que significa que puedes utilizar estas funciones sin importar bibliotecas.
-
median()
: Para el valor mediano -
sd()
: Para la desviación estándar -
sum()
: Para la suma de valores
Si quieres saber más sobre la importancia de las distintas medidas del centro, consulta nuestro completísimo tutorial, Media vs. Centro. Mediana: Conocer la diferencia.
Conclusión
En la mayoría de las tareas básicas de análisis de datos, mean()
es tu primera parada para resumir números.
Sigue aprendiendo con nuestros cursos, como Introducción a R y Análisis Exploratorio de Datos en R.
