[Rd] 'droplevels' inappropriate change
Suharto Anggono Suharto Anggono
suharto_anggono at yahoo.com
Sat Aug 27 05:17:32 CEST 2016
In R devel r71157, 'droplevels' documentation, in "Arguments" section, says this about argument 'exclude'.
passed to factor(); factor levels which should be excluded from the result even if present. Note that this was implicitly NA in R <= 3.3.1 which did drop NA levels even when present in x, contrary to the documentation. The current default is compatible with x[ , drop=FALSE].
The part
x[ , drop=FALSE]
should be
x[ , drop=TRUE]
Saying that 'exclude' is factor levels is not quite true for NA element. NA may be not an original level, but NA in 'exclude' affects the result.
For a factor 'x', factor(x, exclude = exclude) doesn't really work for excluding in general. See, for example, https://stat.ethz.ch/pipermail/r-help/2005-September/079336.html .
factor(factor(c("a","b","c")), exclude="c")
However, this excludes "2":
factor(factor(2:3), exclude=2)
Rather unexpectedly, this excludes NA:
factor(factor(c("a",NA), exclude=NULL), exclude="c")
For a factor 'x', factor(x, exclude = exclude) can only exclude integer-like or NA levels. An explanation is in https://stat.ethz.ch/pipermail/r-help/2011-April/276274.html .
More information about the R-devel
mailing list