Rev 71138 | Rev 83727 | Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | Download | RSS feed
% File src/library/base/man/factor.Rd% Part of the R package, https://www.R-project.org% Copyright 1995-2016 R Core Team% Distributed under GPL 2 or later\name{droplevels}\title{Drop Unused Levels from Factors}\alias{droplevels}\alias{droplevels.factor}\alias{droplevels.data.frame}\concept{categorical variable}\concept{enumerated type}\concept{category}\description{The function \code{droplevels} is used to drop unused levels from a\code{\link{factor}} or, more commonly, from factors in a data frame.}\usage{\S3method{droplevels}{factor}(x, exclude = if(anyNA(levels(x))) NULL else NA, \dots)\S3method{droplevels}{data.frame}(x, except, exclude, \dots)}\arguments{\item{x}{an object from which to drop unused factor levels.}\item{exclude}{passed to \code{\link{factor}()}; factor levels whichshould be excluded from the result even if present. Note that thiswas \emph{implicitly} \code{NA} in \R <= 3.3.1 which did drop\code{NA} levels even when present in \code{x}, contrary to thedocumentation. The current default is compatible with \code{x[ , drop=TRUE]}.}\item{\dots}{further arguments passed to methods}\item{except}{indices of columns from which \emph{not} to drop levels}}\value{\code{droplevels} returns an object of the same class as \code{x}}\details{The method for class \code{"factor"} is currently equivalent to\code{factor(x, exclude=exclude)}. For the data frame method, youshould rarely specify \code{exclude} \dQuote{globally} for all factorcolumns; rather the default uses the same factor-specific\code{exclude} as the factor method itself.The \code{except} argument follow the usual indexing rules.}\note{ This function was introduced in R 2.12.0. It is primarilyintended for cases where one or more factors in a data framecontains only elements from a reduced level set aftersubsetting. (Notice that subsetting does \emph{not} in general dropunused levels). By default, levels are dropped from all factors in adata frame, but the \code{except} argument allows you to specifycolumns for which this is not wanted.}\seealso{\code{\link{subset}} for subsetting data frames.\code{\link{factor}} for definition of factors.\code{\link{drop}} for dropping array dimensions.\code{\link{drop1}} for dropping terms from a model.\code{\link{[.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)}\keyword{category}\keyword{NA}