Re: [R] Faster way to transform vector [3 8 4 6 1 5] to [2 6 3 5 1 4]

2014-04-28 Thread xmliu1...@gmail.com
Thanks for your kind replies Jorge's answer helps. warm wishes Xueming xmliu1...@gmail.com From: Jorge I Velez Date: 2014-04-26 23:41 To: xmliu1...@gmail.com CC: r-help Subject: Re: [R] Faster way to transform vector [3 8 4 6 1 5] to [2 6 3 5 1 4] Hi Xueming, Try (1:length(bo))

Re: [R] Faster way to transform vector [3 8 4 6 1 5] to [2 6 3 5 1 4]

2014-04-26 Thread arun
Hi, Perhaps, rank(bo) #[1] 2 6 3 5 1 4 A.K. On Saturday, April 26, 2014 11:00 AM, "xmliu1...@gmail.com" wrote: Hi, could anybody help me to find a fast way to fix the following question? Given a verctor of length N, for example bo = [3  8  4  6  1  5], I want to drive a vector whose element

Re: [R] Faster way to transform vector [3 8 4 6 1 5] to [2 6 3 5 1 4]

2014-04-26 Thread Jorge I Velez
Hi Xueming, Try (1:length(bo))[rank(bo)] In a function the above would be f <- function(x){ N <- length(x) (1:N)[rank(x)] } f(bo) # [1] 2 6 3 5 1 4 HTH, Jorge.- On Sat, Apr 26, 2014 at 7:54 PM, xmliu1...@gmail.com wrote: > Hi, > > could anybody help me to find a fast way to fi

Re: [R] Faster way to transform vector [3 8 4 6 1 5] to [2 6 3 5 1 4]

2014-04-26 Thread William Dunlap
Look into the rank function. If there are duplicated values in the input vector its 'ties' argument says how to deal with them. If there are ties I think your algorithm puts the last one in the first position, e.g., it maps c(101,101,101,102,102) to c(3,2,1,5,4). rank does not include this option

[R] Faster way to transform vector [3 8 4 6 1 5] to [2 6 3 5 1 4]

2014-04-26 Thread xmliu1...@gmail.com
Hi, could anybody help me to find a fast way to fix the following question? Given a verctor of length N, for example bo = [3 8 4 6 1 5], I want to drive a vector whose elements are 1, 2, ..., N and the order of elements is the same as that in verctor bo. In this example, the result is suppo