[R] I don't understand the 'order' function
Duncan Murdoch
murdoch.duncan at gmail.com
Tue Apr 16 19:59:03 CEST 2013
On 16/04/2013 1:51 PM, Julio Sergio wrote:
> I thought I've understood the 'order' function, using simple examples like:
>
> order(c(5,4,-2))
> [1] 3 2 1
>
> However, I arrived to the following example:
>
> order(c(2465, 2255, 2085, 1545, 1335, 1210, 920, 210, 210, 505, 1045))
> [1] 8 9 10 7 11 6 5 4 3 2 1
>
> and I was completely perplexed!
> Shouldn't the output vector be 11 10 9 8 7 6 4 1 2 3 5 ?
> Do I have a damaged version of R?
You are probably confusing order() and rank(). What we want is that
x[order(x)]
is in increasing order. This is the inverse permutation of what
rank(x) gives, so (if there are no ties) rank(x)[order(x)] and
order(x)[rank(x)] should both give 1:length(x).
Duncan
>
> I became still more astonished when I used the sort function and got the
> right answer:
>
> sort(c(2465, 2255, 2085, 1545, 1335, 1210, 920, 210, 210, 505, 1045))
> [1] 210 210 505 920 1045 1210 1335 1545 2085 2255 2465
> since 'sort' documentation claims to be using 'order' to establish the right
> order.
>
> Please help me to understand all this!
>
> Thanks,
>
> -Sergio.
>
> ______________________________________________
> 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.
More information about the R-help
mailing list