droplevels {base} | R Documentation |
Drop Unused Levels from Factors
Description
The function droplevels
is used to drop unused levels from a
factor
or, more commonly, from factors in a data frame.
Usage
droplevels(x, ...)
## S3 method for class 'factor'
droplevels(x, exclude = if(anyNA(levels(x))) NULL else NA, ...)
## S3 method for class 'data.frame'
droplevels(x, except, exclude, ...)
Arguments
x |
an object from which to drop unused factor levels. |
exclude |
passed to |
... |
further arguments passed to methods. |
except |
indices of columns from which not to drop levels. |
Details
The method for class "factor"
is currently equivalent to
factor(x, exclude=exclude)
. For the data frame method, you
should rarely specify exclude
“globally” for all factor
columns; rather the default uses the same factor-specific
exclude
as the factor method itself.
The except
argument follows the usual indexing rules.
Value
droplevels
returns an object of the same class as x
Note
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.
Examples
aq <- transform(airquality, Month = factor(Month, labels = month.abb[5:9]))
aq <- subset(aq, Month != "Jul")
table( aq $Month)
table(droplevels(aq)$Month)