How to Use the levels() Function in R

The levels() function in R is “used to provide access to the levels attribute”. The first form returns the value of the levels of its argument, and the second sets the attribute. You can assign the individual levels using the gl() function.

Syntax

levels(x) 
levels(x) <- value

Parameters

  1. x: It is the x is an input factor.
  2. value: It is a valid value for levels(x). For the default method, NULL or a character vector. For the factor method, a vector of character strings with a length of at least the number of levels of x or a named list specifying how to rename the levels.

Example 1

data_vector <- c("Hermione", "Harry", "Ron", "Albus")
factor_vector <- factor(data_vector)
factor_vector

data <- factor_vector[1]
data

Output

[1] Hermione Harry Ron Albus
Levels: Albus Harry Hermione Ron

[1] Hermione
Levels: Albus Harry Hermione Ron

In this example, we have not defined any levels, so it takes the levels from the data.

Example 2

We can assign the new levels using the levels() function.

data_vector <- c("Hermione", "Harry", "Ron", "Draco")
factor_vector <- factor(data_vector)
factor_vector

levels(factor_vector) <- c("Godric", "Salazar", "Hufflepuff", "Ravenclaw")
factor_vector

Output

[1] Hermione Harry Ron Draco
Levels: Draco Harry Hermione Ron
[1] Hufflepuff Salazar Ravenclaw Godric
Levels: Godric Salazar Hufflepuff Ravenclaw

Example 3

You can summarize the vector using the summary() method.

data_vector <- c("Hermione", "Harry", "Ron", "Draco")
factor_vector <- factor(data_vector)
factor_vector

levels(factor_vector) <- c("Godric", "Salazar", "Hufflepuff", "Ravenclaw")
summary(factor_vector)

Output

[1] Hermione Harry Ron Draco
Levels: Draco Harry Hermione Ron
Godric Salazar Hufflepuff Ravenclaw
   1      1       1          1

View the levels of a factor variable

levels(main_factor_variable)

Change the levels of a factor variable

levels(main_factor_variable) <- c("new_level1", "new_level2", ...)

Reorder the levels of a factor variable

main_factor_variable <- factor(main_factor_variable, 
         levels = c("new_level2", "new_level1", ...))

Combine levels in a factor variable

main_factor_variable <- fct_collapse(main_factor_variable, 
                       new_level1 = c("old_level1", "old_level2"), 
                       new_level2 = c("old_level3", "old_level4"), ...)

That’s it.

Leave a Comment