On 09/04/2012 9:58 AM, crmnaw wrote:
Hi,

Thanks for your reply. In the example I gave in the original post, your code
works. But for others, it doesn't and I'm not sure why it works for some
cases and not for others. For example:

x<-c(0.04,0.07,0.20,0.35,0.55,0.70)
order(x)
[1] 1 2 3 4 5 6

Let's say I want y to be in the order 1-2-5-3-6-4. So I do:

y<-x[c(1,2,5,3,6,4)]
y
[1] 0.04 0.07 0.55 0.20 0.70 0.35
order(y)
[1] 1 2 4 6 3 5

So, y isn't in the order I want it to be in. Any help that can be provided
would be greatly appreciated.

Okay, I didn't understand what you meant.

You should think of the result of order(y) as a permutation to apply to y so that it is in sorted order. That is,

y[order(y)]

will always be in sorted order. So what you want is a permutation of x that will be put into sorted order by y[c(1,2,5,3,6,4)], i.e. you want the inverse of the permutation c(1,2,5,3,6,4). Turns out that if you apply order to a permutation you get its inverse. So what you want is

y <- x[order(c(1,2,5,3,6,4))]

Duncan Murdoch

______________________________________________
R-help@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.

Reply via email to