Skip to content

rank() not doing really what I want

4 messages · Henri-Paul Indiogine, R. Michael Weylandt, David Winsemius

#
Greetings!

I have the following vector already in decreasing order:

125, 124, 111, 108, 107, 107, 105, ....

I want to find out the rank, so I do the following:

rank(-x, ties.method="min")

Then I get the following:

1, 2, 3, 4, 5, 5, 7, ....

but that is not what I want.  I want it to give:

1. ,2, 3, 4, 5 ,5, 6, ....

There should be no "jumps" in the sequence.

How would that be possible?

Thanks,
Henri-Paul
#
If they are already in decreasing order, you might be able to work
something out like (untested):

cumsum(c(1, diff(x) < 0))

Cheers,
Michael

On Fri, Oct 12, 2012 at 8:05 AM, Henri-Paul Indiogine
<hindiogine at gmail.com> wrote:
#
Hi Michael!

2012/10/12 R. Michael Weylandt <michael.weylandt at gmail.com>:
Thanks seems to work.  Thanks a bunch!

Henri-Paul
#
On Oct 12, 2012, at 1:07 AM, Henri-Paul Indiogine wrote:

            
Another strategy:

cumsum(!duplicated(x))