From: Nordlund, Dan (DSHS) <NordlDJ_at_dshs.wa.gov>

Date: Thu 22 Jun 2006 - 10:40:24 EST

R-help@stat.math.ethz.ch mailing list

https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide! http://www.R-project.org/posting-guide.html Received on Thu Jun 22 10:50:23 2006

Date: Thu 22 Jun 2006 - 10:40:24 EST

> -----Original Message-----

*> From: r-help-bounces@stat.math.ethz.ch [mailto:r-help-
**> bounces@stat.math.ethz.ch] On Behalf Of Duncan Murdoch
**> Sent: Wednesday, June 21, 2006 11:14 AM
**> To: Peter Dalgaard
**> Cc: r-help@stat.math.ethz.ch
**> Subject: Re: [R] rank(x,y)?
**>
**> Peter Dalgaard wrote:
**> > Duncan Murdoch <murdoch@stats.uwo.ca> writes:
**> >
**> >
**> >> Suppose I have two columns, x,y. I can use order(x,y) to calculate a
**> >> permutation that puts them into increasing order of x,
**> >> with ties broken by y.
**> >>
**> >> I'd like instead to calculate the rank of each pair under the same
**> >> ordering, but the rank() function doesn't take multiple values
**> >> as input. Is there a simple way to get what I want?
**> >>
**> >> E.g.
**> >>
**> >> > x <- c(1,2,3,4,1,2,3,4)
**> >> > y <- c(1,2,3,1,2,3,1,2)
**> >> > rank(x+y/10)
**> >> [1] 1 3 6 7 2 4 5 8
**> >>
**> >> gives me the answer I want, but only because I know the range of y and
**> >> the size of gaps in the x values. What do I do in general?
**> >>
**> >
**> > Still not quite general, but in the absence of ties:
**> >
**> >
**> >> z[order(x,y)]<-1:8
**> >> z
**> >>
**> > [1] 1 3 6 7 2 4 5 8
**> >
**> >
**>
**> Thanks to all who have replied. Unfortunately for me, ties do exist,
**> and I'd like them to get identical ranks. John Fox's suggestion would
**> handle ties properly, but I'm worried about rounding error giving
**> spurious ties.
**>
**> Duncan Murdoch
**>
*

Duncan,

Similar to John's approach, how about something like

rankPair<-function(a,b){

n<-ceiling(log(length(a)))+1

rank(10^n*rank(a)+rank(b))

}

This should avoid rounding problems and should be reasonably general (as long as the number of pairs to be ranked doesn't become too large.

Dan

Daniel J. Nordlund

Research and Data Analysis

Washington State Department of Social and Health Services
Olympia, WA 98504-5204

R-help@stat.math.ethz.ch mailing list

https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide! http://www.R-project.org/posting-guide.html Received on Thu Jun 22 10:50:23 2006

Archive maintained by Robert King, hosted by
the discipline of
statistics at the
University of Newcastle,
Australia.

Archive generated by hypermail 2.1.8, at Thu 22 Jun 2006 - 12:11:50 EST.

*
Mailing list information is available at https://stat.ethz.ch/mailman/listinfo/r-help.
Please read the posting
guide before posting to the list.
*