[R] I don't know the difference between rank and order

Patrick Burns pburns at pburns.seanet.com
Wed Nov 21 10:59:34 CET 2012


Obviously something that is possible
to get wrong even when you know it:

http://www.portfolioprobe.com/2012/07/26/r-inferno-ism-order-is-not-rank/

Pat

On 21/11/2012 08:13, (Ted Harding) wrote:
> On 21-Nov-2012 02:57:19 li1127217ye wrote:
>> I don't know the difference between rank and order.For example:
>>> x=c(10,30,30,20,10,20)
>>> x[rank(x,ties.method="first")]
>> [1] 10 10 20 30 30 20
>>> x[order(x)]
>> [1] 10 10 20 20 30 30
>>
>> the result is quite different,
>>   x[rank(x,ties.method="first")]
>> [1] 10 10 20 30 30 20
>> It is not sorted,why?
>
> It is because rank() gives, for each element of x, the position
> of that value within the sorted series of all the values in x.
> This will not, in general, be the same as the index, within x,
> of the value that should be in that position.
>
> Example:
>
>    x1=c(6,5,4,2,3,1)
>
>    x1[rank(x1,ties.method="first")]
>    # [1] 1 3 2 5 4 6
>
>    rank(x1,ties.method="first")
>    # [1] 6 5 4 2 3 1
>
> So "2" indeed has rank 2, and "3" has rank 3; but what will be
> returned by x1[rank(x)] will depend on what is in x[2] and x[3]
> (in this case "5" and "4" respectively).
>
> Ted.
>
> -------------------------------------------------
> E-Mail: (Ted Harding) <Ted.Harding at wlandres.net>
> Date: 21-Nov-2012  Time: 08:13:23
> This message was sent by XFMail
>
> ______________________________________________
> R-help at r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/r-help
> PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
> and provide commented, minimal, self-contained, reproducible code.
>

-- 
Patrick Burns
pburns at pburns.seanet.com
twitter: @portfolioprobe
http://www.portfolioprobe.com/blog
http://www.burns-stat.com
(home of 'Some hints for the R beginner'
and 'The R Inferno')




More information about the R-help mailing list