[Rd] Problem with table

Prof Brian Ripley ripley at stats.ox.ac.uk
Tue Mar 27 09:05:20 CEST 2012

On 19/03/2012 17:01, Terry Therneau wrote:
> R version 2.14.0, started with --vanilla
>  > table(c(1,2,3,4,NA), exclude=2, useNA='ifany')
> 1 3 4 <NA>
> 1 1 1 2
> This came from a local user who wanted to remove one particular response
> from some tables, but also wants to have NA always reported for data
> checking purposes.
> I don't think the above is what anyone would want.

You have not told us what you want!


 >  table(as.factor(c(1,2,3,4,NA)), exclude=2, useNA='ifany')

    1    3    4 <NA>
    1    1    1    1

Note carefully how 'exclude' is defined:

  exclude: levels to remove from all factors in ‘...’. If set to ‘NULL’,
           it implies ‘useNA="always"’.

As you did not specify a factor, 'exclude' was used in forming the 'levels'.

> PS.
> This is on a background of our local desires, which is to have the
> default action of the table command be
> to report NA, if present. (It's one of the only commands that we
> globally override at Mayo.) The user had
> added only the exclude=2 argument, and the useNA value is our default.
> The above makes this harder to do without rewriting the command
> wholesale, which is ok (we've done it before at
> various times in R and Splus) but we would avoid it if possible. Please
> no wars about whether this is the "right" decison or not, we've done it
> for 10+ years and quite firmly believe the extra robustness gained by
> having NA appear
> is worth the maintainance bother, correctness being paramount in medical
> research. We're not trying to convert anyone
> else, just get feedback on the best way to approach this.

Most likely, feed table() a factor with the properties you want.

> Terry T.
> ______________________________________________
> R-devel at r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/r-devel

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-devel mailing list