I think this very clear from the help page:
exclude: values to use in the exclude argument of 'factor' when
interpreting non-factor objects; if specified, levels to
remove from all factors in ....
Only when 'exclude' is specified (i.e., not by default), will
'table' drop levels of factor arguments potentially.
and you cannot remove a level that is not there.
You seem to be persisting in not understanding: 'exclude' is supposed
to be the same type as x (or its levels), and you have given logical
and numeric values, not character ones.
x <- c(1,2,3,3,NA)
y <- factor(x)
y
[1] 1 2 3 3 <NA>
Levels: 1 2 3
y
1 2 3
1 1 2
On Fri, 8 Apr 2005, Prof Brian Ripley wrote:
NaN only applies to double values: there is no integer NaN (nor Inf
nor -Inf). The difference is clear from
[1] 1 2 3 3 <NA>
Levels: 1 2 3 <NA>
factor(as.integer(x), exclude=NaN)
[1] 1 2 3 3 <NA>
Levels: 1 2 3
If you read ?factor it says
exclude: a vector of values to be excluded when forming the set
of
levels. This should be of the same type as 'x', and will
be coerced if necessary.
and as.integer(NaN) is integer NA. So factor(as.integer(x),
exclude=NaN) is the same as factor(as.integer(x), exclude=NA).
[rest deleted]
====================================================================
====== Paul Rathouz, Assoc. Professor ph 773-834-1970 Dept.
of Health Studies, Rm. W-264 fax 773-702-1979 University of
Chicago prathouz at health.bsd.uchicago.edu 5841 S.
Maryland Ave. MC 2007 Chicago, IL 60637
====================================================================
======
--
Brian D. Ripley, ripley at stats.ox.ac.uk
Professor of Applied Statistics, http://www.stats.ox.ac.uk/~ripley/
University of Oxford, Tel: +44 1865 272861 (self) 1 South
Parks Road, +44 1865 272866 (PA) Oxford OX1 3TG,
UK Fax: +44 1865 272595