Niveles de los factores
Cuando obtengas por primera vez un conjunto de datos, a menudo observarás que contiene factores con niveles de factor específicos. Sin embargo, a veces querrás cambiar los nombres de estos niveles por claridad u otras razones. R te permite hacerlo con la función levels()
:
levels(factor_vector) <- c("name1", "name2",...)
Un buen ejemplo son los datos brutos que te proporciona una encuesta. Una pregunta habitual en todos los cuestionarios es el sexo del encuestado. Aquí, para simplificar, solo se registraron dos categorías, "M"
y "F"
. (Normalmente necesitas más categorías para los datos de encuestas; en cualquier caso, utilizas un factor para almacenar los datos categóricos).
survey_vector <- c("M", "F", "F", "M", "M")
Registrar el sexo con las abreviaturas "M"
y "F"
puede ser cómodo si recoges los datos con bolígrafo y papel, pero puede introducir confusión al analizar los datos. En ese momento, a menudo querrás cambiar los niveles de los factores a "Male"
y "Female"
en lugar de "M"
y "F"
para mayor claridad.
Cuidado: el orden en que asignes los niveles es importante. Si escribes levels(factor_survey_vector)
, verás que sale [1] "F" "M"
. Si no especificas los niveles del factor al crear el vector, R
los asignará automáticamente por orden alfabético. Para asignar correctamente "F"
a "Female"
y "M"
a "Male"
, los niveles deben ajustarse a c("Female", "Male")
, en este orden.
Este ejercicio forma parte del curso
Introducción a R
Instrucciones del ejercicio
- Comprueba el código que construye un vector de factores a partir de
survey_vector
. Debes utilizarfactor_survey_vector
en la siguiente instrucción. - Cambia los niveles de los factores de
factor_survey_vector
ac("Female", "Male")
. Ten en cuenta aquí el orden de los elementos vectoriales.
Ejercicio interactivo práctico
Prueba este ejercicio completando el código de muestra.
# Code to build factor_survey_vector
survey_vector <- c("M", "F", "F", "M", "M")
factor_survey_vector <- factor(survey_vector)
# Specify the levels of factor_survey_vector
levels(factor_survey_vector) <-
factor_survey_vector