droplevels {base}R Documentation

Drop Unused Levels from Factors


The function droplevels is used to drop unused levels from a factor or, more commonly, from factors in a data frame.


## S3 method for class 'factor'
droplevels(x, exclude = NA, ...)
## S3 method for class 'data.frame'
droplevels(x, except, exclude = NA, ...)



an object from which to drop unused factor levels.


passed to factor(); factor levels which should be excluded from the result even if present. This argument is new as of R 3.3.2. Note that exclude = NULL will be the default from R 3.4.0 on. Strongly recommended to be set explicitly, to ease transition to new default NULL.


further arguments passed to methods


indices of columns from which not to drop levels


The method for class "factor" is currently equivalent to factor(x, exclude=exclude).

The except argument follow the usual indexing rules.


droplevels returns an object of the same class as x


This function was introduced in R 2.12.0. It is primarily intended for cases where one or more factors in a data frame contains only elements from a reduced level set after subsetting. (Notice that subsetting does not in general drop unused levels). By default, levels are dropped from all factors in a data frame, but the except argument allows you to specify columns for which this is not wanted.

See Also

subset for subsetting data frames. factor for definition of factors. drop for dropping array dimensions. drop1 for dropping terms from a model. [.factor for subsetting of factors.


aq <- transform(airquality, Month = factor(Month, labels = month.abb[5:9]))
aq <- subset(aq, Month != "Jul")

[Package base version 3.3.1 Index]