Ir al contenido principal

Niveles de factores en R

Este tutorial toma material del curso gratuito Intro to R de DataCamp y te permite practicar con los factores.
Actualizado 17 sept 2026  · 6 min leer

Explorar con IA

ChatGPTClaudePerplexity

Si quieres hacer nuestro curso gratuito Intro to R, aquí tienes el enlace.

Niveles de factores

Al trabajar por primera vez con un conjunto de datos, a menudo verás que incluye factores con ciertos niveles. Sin embargo, puede que te interese cambiar el nombre de esos niveles para que sean más claros u por otros motivos. R te permite hacerlo con la función levels():

levels(factor_vector) <- c("name1", "name2",...)

Un buen ejemplo es la información en bruto que obtienes de una encuesta. Una pregunta habitual en cualquier cuestionario es el sexo de la persona encuestada. Aquí, por simplicidad, solo se registraron dos categorías, "M" y "F". (En datos de encuestas normalmente necesitarás más categorías; en cualquier caso, usas un factor para almacenar los datos categóricos).

survey_vector <- c("M", "F", "F", "M", "M")

Anotar el sexo con las abreviaturas "M" y "F" puede ser práctico si recoges datos en papel, pero puede dar pie a confusiones al analizarlos. En ese momento, a menudo querrás cambiar los niveles del factor a "Male" y "Female" en lugar de "M" y "F" para que quede más claro.

Ojo: el orden en el que asignas los niveles importa. Si tecleas levels(factor_survey_vector), verás que muestra [1] "F" "M". Si no especificas los niveles del factor al crear el vector, R los asigna alfabéticamente. Para mapear correctamente "F" a "Female" y "M" a "Male", los niveles deben establecerse como c("Female", "Male"), en ese orden.

Instrucciones

  • Revisa el código que construye un vector factor a partir de survey_vector. Necesitarás usar factor_survey_vector en la siguiente instrucción.
  • Cambia los niveles del factor factor_survey_vector a c("Female", "Male"). Fíjate en el orden de los elementos del vector.
# no pec survey_vector <- c("M", "F", "F", "M", "M") factor_survey_vector <- factor(survey_vector) # Código para construir factor_survey_vector survey_vector <- c("M", "F", "F", "M", "M") factor_survey_vector <- factor(survey_vector) # Especifica los niveles de factor_survey_vector levels(factor_survey_vector) <- factor_survey_vector # Código para construir factor_survey_vector survey_vector <- c("M", "F", "F", "M", "M") factor_survey_vector <- factor(survey_vector) # Especifica los niveles de factor_survey_vector levels(factor_survey_vector) <- c("Female", "Male") factor_survey_vector msg = "Do not change the definition of survey_vector!" test_object("survey_vector", undefined_msg = msg, incorrect_msg = msg) msg = "Do not change or remove the code to create the factor vector." test_function("factor", "x", not_called_msg = msg, incorrect_msg = msg) # MC-note: ideally would want to test assign operator <-, and have it highlight whole line. # MC-note: or negate this test_student_typed, to highlight where they type this incorrect phrase # test_student_typed('c("Male", "Female")') test_object("factor_survey_vector", eq_condition = "equal", incorrect_msg = paste("Did you assign the correct factor levels to factor_survey_vector? Use levels(factor_survey_vector) <- c(\"Female\", \"Male\"). Remember that R is case sensitive!")) success_msg("Wonderful! Proceed to the next exercise.")

Fíjate en el orden en el que tienes que escribir los niveles del factor. Pista: mira el orden en el que se imprimen los niveles al teclear levels(factor_survey_vector).

Resumir un factor

Cuando termines este curso, una de tus funciones favoritas en R será summary(). Te da una visión rápida del contenido de una variable:

summary(my_var)

Volviendo a nuestra encuesta, te gustaría saber cuántas respuestas "Male" tienes en tu estudio y cuántas "Female". La función summary() te da la respuesta.

Instrucciones

Pide un summary() de survey_vector y de factor_survey_vector. Interpreta los resultados de ambos vectores. ¿Son igual de útiles en este caso?

# Construye factor_survey_vector con niveles claros survey_vector <- c("M", "F", "F", "M", "M") factor_survey_vector <- factor(survey_vector) levels(factor_survey_vector) <- c("Female", "Male") factor_survey_vector # Genera el resumen para survey_vector # Genera el resumen para factor_survey_vector # Construye factor_survey_vector con niveles claros survey_vector <- c("M", "F", "F", "M", "M") factor_survey_vector <- factor(survey_vector) levels(factor_survey_vector) <- c("Female", "Male") factor_survey_vector # Genera el resumen para survey_vector summary(survey_vector) # Genera el resumen para factor_survey_vector summary(factor_survey_vector) msg = "Do not change anything about the first few lines that define survey_vector and factor_survey_vector." test_object("survey_vector", undefined_msg = msg, incorrect_msg = msg) test_object("factor_survey_vector", eq_condition = "equal", undefined_msg = msg, incorrect_msg = msg) msg <- "Have you correctly used summary() to generate a summary for %s?" test_output_contains("summary(survey_vector)", incorrect_msg = sprintf(msg, "survey_vector")) test_output_contains("summary(factor_survey_vector)", incorrect_msg = sprintf(msg, "factor_survey_vector")) success_msg("Nice! Have a look at the output. The fact that you identified \"Male\" and \"Female\" as factor levels in factor_survey_vector enables R to show the number of elements for each category.")

Llama a la función summary() tanto sobre survey_vector como sobre factor_survey_vector, ¡así de fácil!

Factores ordenados

Como "Male" y "Female" son niveles de un factor no ordenado (o nominal), R devuelve un aviso indicando que el operador mayor que no tiene sentido. Como ya viste, R asigna el mismo valor a los niveles en este tipo de factores.

¡Pero no siempre es así! A veces también trabajarás con factores que sí tienen un orden natural entre sus categorías. Si es el caso, tenemos que asegurarnos de pasar esa información a R...

Imagina que diriges un equipo de investigación con cinco analistas de datos y quieres evaluar su rendimiento. Para ello, mides su velocidad, evalúas a cada analista como "slow", "medium" o "fast", y guardas los resultados en speed_vector.

Instrucciones

Como primer paso, asigna a speed_vector un vector con 5 entradas, una por cada analista. Cada entrada debe ser "slow", "medium" o "fast". Usa la siguiente lista:

  • La analista 1 es medium,
  • El analista 2 es slow,
  • El analista 3 es slow,
  • La analista 4 es medium y
  • El analista 5 es fast.

Todavía no hace falta especificar que son factores.

# Crea speed_vector speed_vector <- # Crea speed_vector speed_vector <- c("medium", "slow", "slow", "medium", "fast") test_object("speed_vector", incorrect_msg = "speed_vector should be a vector with 5 entries, one for each analyst's speed rating. Don't use capital letters; R is case sensitive!") success_msg("A job well done! Continue to the next exercise.")

Asigna a speed_vector un vector que contenga las cadenas "slow", "medium" o "fast".


Si quieres seguir aprendiendo con este curso, aquí tienes el enlace.

Echa un vistazo a nuestro tutorial de factores en R.

Temas
R
Ciencia de datos
Análisis de datos

Cursos de R

Curso

Introducción a R

4 h
3.1M
Domina los fundamentos del análisis de datos en R, como vectores, listas y marcos de datos, y practica R con conjuntos de datos reales.
Ver detallesRight Arrow
Iniciar Curso
Ver másRight Arrow
Relacionado

Tutorial

Tutorial de regresión lineal en R

En este tutorial aprenderás los fundamentos de un modelo estadístico muy popular: la regresión lineal.

Eladio Montero Porras

15 min

Tutorial

Tutorial de tablas de contingencia en R

En este tutorial, aprenderás a crear tablas de contingencia y a probar y cuantificar las relaciones visibles en ellas.
Łukasz Deryło's photo

Łukasz Deryło

10 min

Tutorial

Creación de una lista en R

Practica Listas en R utilizando el material del curso Introducción a R de DataCamp.
Ryan Sheehy's photo

Ryan Sheehy

3 min

multiple linear regression

Tutorial

Regresión lineal múltiple en R: tutorial con ejemplos

Una visión completa para entender las regresiones lineales múltiples en R a través de ejemplos.
Zoumana Keita 's photo

Zoumana Keita

12 min

Tutorial

Tutorial de análisis de componentes principales en R

En este tutorial, aprenderás a utilizar el PCA (análisis de componentes principales) de R para extraer datos con muchas variables y crear visualizaciones para mostrar esos datos.
Zoumana Keita 's photo

Zoumana Keita

15 min

Tutorial

Tutorial de pruebas T en R: Aprende a realizar pruebas T

Determina si existe una diferencia significativa entre las medias de los dos grupos utilizando t.test() en R.
Abid Ali Awan's photo

Abid Ali Awan

10 min

Ver MásVer Más