¿Cómo cambiar el nombre de los niveles de los factores en R?

En este artículo, veremos cómo cambiar el nombre de los niveles de los factores en el lenguaje de programación R.

Una variable de factor en R se representa usando variables categóricas que se representan usando varios niveles. Cada valor único se representa mediante un valor de nivel único. Una variable de factor o vector en R se puede declarar utilizando el método factor(). 

Sintaxis: factor(vec)

Argumentos : vec – El vector

Los niveles únicos del factor se pueden extraer usando el métodolevels() que toma como argumento el vector factor creado. Muestra todas las entradas únicas dentro de la variable de factor. 

Sintaxis: niveles (fac-vec)

Argumentos: fac-vec – El vector de factores para extraer los valores de 

Método 1: Usando el método base R

Los niveles de los factores se pueden renombrar utilizando los operadores de comparación e indexación. El valor del factor existente se compara y luego se modifica asignándole un nuevo valor. Los cambios se realizan en el vector de factores existente. Se sigue la siguiente sintaxis: 

Sintaxis: niveles(fac-vec)[niveles(fac-vec)==valor-antiguo] <- valor-nuevo

Argumentos: fac-vec – El vector de factores para extraer los valores de 

R

# declare a factor
val < - factor(c("Geeks", "For", "Geeks",
                 "Coding", "Fun"))
  
# printing the levels of factor variables
print("Levels of factor")
lvls < - levels(val)
print(lvls)
  
# renaming the factors
levels(val)[levels(val) == "Coding"] < - "Learning"
print("Modified Levels of factor")
lvls < - levels(val)
print(lvls)

Producción

[1] "Levels of factor"
[1] "Coding" "For"    "Fun"    "Geeks" 
[1] "Modified Levels of factor"
[1] "Learning" "For"      "Fun"      "Geeks"  

El método list() también se puede usar para crear una lista de niveles de factores que se crearán y luego se pueden reasignar a nuevos valores. Luego, los niveles() se reasignan a estos valores recién declarados. Los cambios se realizan en el vector factor original. Se puede cambiar el nombre de más de un factor con este método. 

list(new-fac=val = old-fac-val,..)

 Una combinación de valores de variables de factores antiguos y nuevos se declaran dentro del método list(). 

R

# declare a factor 
val <- factor(c("Geeks","For","Geeks",
                "Coding","Fun"))
  
# printing the levels of factor variables
print("Levels of factor")
lvls <- levels(val)
print(lvls)
  
# renaming the factors
levels(val) <- list("Learning"="Fun",
                    "Programming"="Coding")
print("Modified Levels of factor")
print(levels(val))

Producción:

[1] "Levels of factor"
[1] "Coding" "For"    "Fun"    "Geeks" 
[1] "Modified Levels of factor"
[1] "Learning"    "Programming"

Todos los niveles de una variable de factor también se pueden renombrar usando el método c() para crear un vector de los niveles. A continuación, los valores recién creados se asignan a una variable de factor. El siguiente fragmento de código ilustra este procedimiento: 

R

# declare a factor 
val <- factor(c("Geeks","For","Geeks",
                "Coding","Fun"))
  
# printing the levels of factor variables
print("Levels of factor")
lvls <- levels(val)
print(lvls)
  
# renaming the factors
levels(val) <- c("Hi","There",
                 "Welcome","Here")
print("Modified Levels of factor")
print(levels(val))

Producción:

[1] "Levels of factor"
[1] "Coding" "For"    "Fun"    "Geeks" 
[1] "Modified Levels of factor"
[1] "Hi"      "There"   "Welcome" "Here"  

Método 2: Usar el método revalue()

El paquete plyr en R se usa para separar datos, realizar operaciones sobre ellos y volver a mezclarlos. El paquete se puede descargar e instalar en el espacio de trabajo con el siguiente comando: 

install.packages("plyr")

El método de revalorización en este paquete se usa para reemplazar los valores especificados con valores recién definidos, en un vector de factores. Los niveles de la variable factor no se modifican en este caso y se mantienen originales. 

Sintaxis: revalorar(x, reemplazar = NULL)

Argumentos: 

  • x – factor vectorial
  • replace: vector de factores, con valores nuevos como valores y valores antiguos como nombres.

R

# importing req libraries
library("plyr")
  
# declare a factor 
val <- factor(c("Geeks","For","Geeks",
                "Coding","Fun"))
  
# printing the levels of factor variables
print("Levels of factor")
lvls <- levels(val)
print(lvls)
  
# renaming the factors
revalue(val, c("Fun"= "Learning", "Coding"= "Programming"))
print("Modified Levels of factor")
print(levels(val))

Producción:

[1] "Levels of factor"
[1] "Coding" "For"    "Fun"    "Geeks"  
Geeks For Geeks Programming Learning
Levels:
[1] "Modified Levels of factor"
[1] "Coding" "For"    "Fun"    "Geeks" 

Método 3: Usar el método mapvalues()

El método mapvalues() en el paquete plyr en R se usa para reemplazar los valores especificados con nuevos valores, en el vector factor. Los cambios no se conservan en el vector original. 

Sintaxis: mapvalues(x, from, to)

Argumentos:

  • x – el vector factor a modificar
  • from – un vector de los elementos a reemplazar
  • to – un vector de valores de reemplazo

R

# importing req libraries
library("plyr")
  
# declare a factor 
val <- factor(c("Geeks","For","Geeks",
                "Coding","Fun"))
  
# printing the levels of factor variables
print("Levels of factor")
lvls <- levels(val)
print(lvls)
  
# renaming the factors
mapvalues(val, from = c("Fun","Coding"),
          to = c("Learning", "Programming"))
print("Modified Levels of factor")
print(levels(val))

Producción:

[1] "Levels of factor"
[1] "Coding" "For"    "Fun"    "Geeks"  
Geeks For Geeks Programming Learning
Levels:
[1] "Modified Levels of factor"
[1] "Coding" "For"    "Fun"    "Geeks" 

Publicación traducida automáticamente

Artículo escrito por codersgram9 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *