R: Levels Attributes (original) (raw)

levels {base} R Documentation

Description

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.

Usage

levels(x)
levels(x) <- value

Arguments

x an object, for example a factor.
value a valid value for levels(x). For the default method, NULL or a character vector. For thefactor 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.

Details

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 [factor](../../base/help/factor.html)s.

For the factor replacement method, a NA in valuecauses 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 vialevels(x) <- value is not the same as (and is preferred to)attr(x, "levels") <- value.

The replacement function is primitive.

References

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

See Also

[nlevels](../../base/help/nlevels.html), [relevel](../../stats/html/relevel.html), [reorder](../../stats/html/reorder.factor.html).

Examples

## 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

[Package _base_ version 4.6.0 Index]