Levels Attributes

levels provides access to the levels attribute of a variable. The first form returns the value of the levels of its argument and the second sets the attribute.

levels(x) <- value

an object, for example a factor.


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 length at least the number of levels of x, or a named list specifying how to rename the levels.


Both the extractor and replacement forms are generic and new methods can be written for them. The most important method for the replacement function is that for factors.

For the factor replacement method, a NA in value causes that level to be removed from the levels and the elements formerly with that level to be replaced by NA.

Note that for a factor, replacing the levels via levels(x) <- value is not the same as (and is preferred to) attr(x, "levels") <- value.

The replacement function is primitive.


Becker, R. A., Chambers, J. M. and Wilks, A. R. (1988) The New S Language. Wadsworth & Brooks/Cole.

See Also

nlevels, relevel, reorder.

  • levels
  • levels.default
  • levels<-
  • levels<-.factor
library(base) # NOT RUN { ## assign individual levels x <- gl(2, 4, 8) levels(x)[1] <- "low" levels(x)[2] <- "high" x ## or as a group y <- gl(2, 4, 8) levels(y) <- c("low", "high") y ## combine some levels z <- gl(3, 2, 12, labels = c("apple", "salad", "orange")) z levels(z) <- c("fruit", "veg", "fruit") z ## same, using a named list z <- gl(3, 2, 12, labels = c("apple", "salad", "orange")) z levels(z) <- list("fruit" = c("apple","orange"), "veg" = "salad") z ## we can add levels this way: f <- factor(c("a","b")) levels(f) <- c("c", "a", "b") f f <- factor(c("a","b")) levels(f) <- list(C = "C", A = "a", B = "b") f # }
Documentation reproduced from package base, version 3.5.1, License: Part of R 3.5.1

Community examples

Looks like there are no examples yet.