[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