[R] NA in table with integer types
Prof Brian Ripley
ripley at stats.ox.ac.uk
Fri Apr 8 15:20:42 CEST 2005
On Fri, 8 Apr 2005, Paul Rathouz wrote:
>
> OK. Thanks. So, if you use table() on a factor that contains NA's, but
> for which NA is not a level, is there any way to get table to generate an
> entry for the NAs? For example, in below, even "exclude=NULL" will not
> give me an entry for <NA> on the factor y:
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
>> table(y,exclude=NA)
> y
> 1 2 3
> 1 1 2
>> table(y,exclude=NaN)
> y
> 1 2 3
> 1 1 2
>> table(y,exclude=NULL)
> 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
>>
>>> factor(x, exclude=NaN)
>> [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
More information about the R-help
mailing list