Re: [Rd] documentation for rank() (PR#7298)

From: Prof Brian Ripley <ripley_at_stats.ox.ac.uk>
Date: Thu 21 Oct 2004 - 17:34:06 EST


On Thu, 21 Oct 2004, Douglas Grove wrote:

>
>
> On Thu, 21 Oct 2004, Prof Brian Ripley wrote:
>
> > On Wed, 20 Oct 2004, Douglas Grove wrote:
> >
> > > Oh crap. So sorry. This is my fault (obviously).
> > > Prior to the new ties methods being added in 2.0.0
> > > I modified the source to do this myself. So looks
> > > like I forgot: (1) that my modified code was still
> > > being accessed default (thought I'd removed it) and
> > > (2) that I had added in the 'decreasing' argument.
> > >
> > > It did seem very odd to me when I saw the undocumented
> > > argument.
> > >
> > > Sorry for the this faulty bug report.
> > >
> > > BTW, would someone please add a 'decreasing' argument to rank.
> > > It seems natural to have one, just like sort, and only
> > > involves about two lines of code and a few lines of
> > > editing to the help file.
> >
> > I don't think so. At the very least, each tie method needs a change, as
> > may the handling of NAs. Also the writing a comprehensible help page will
> > become very complex.
> >
> > What is the need? Rank works for numeric vectors, and why can't you just
> > call rank(-x) or n+1-rank(x)? The reason that does not work for sort() is
> > that it deals with non-numeric vectors.
>
> As you note there isn't a need, I just am used to thinking about
> ranking and sorting as being either increasing (the default) or
> decreasing, having an explicit 'decreasing' option makes the
> the code more transparent. It's a minor thing but as I erroneously
> supposed it to be easy, it seemed worthwhile.
>
> You're right that there would need to be a special case for at least
> ties.method='first', but I think for the others just using
> if (decreasing) x <- -x
> should be all that is needed.

Looks like rank() does actually work for non-numeric vectors (even though it was not documented to do so), which complicates things further.

> > Incidentally, we might need a `last' value for ties.method.
>
> I don't see that my suggestion necessitates that. However one
> could argue for a 'last' value in ties.method for completeness.
> I personally have had no need for 'first' nor would I for 'last'.

If you allow decreasing values, then I suspect you want a stable sort variant, which would be `last' not `first'. Certainly `first' makes no sense.

-- 
Brian D. Ripley,                  ripley@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

______________________________________________
R-devel@stat.math.ethz.ch mailing list
https://stat.ethz.ch/mailman/listinfo/r-devel
Received on Thu Oct 21 17:40:15 2004

This archive was generated by hypermail 2.1.8 : Wed 03 Nov 2004 - 22:45:23 EST