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 .

______________________________________________
R-devel@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-devel

Reply via email to