Dear Duncan, How about something like the following?
rank2 <- function(x, y){ x <- (x - min(x))/diff(range(x)) y <- (y - min(y))/diff(range(y)) rank(10*(x + 1) + y) } Regards, John On Wed, 21 Jun 2006 13:43:39 -0400 Duncan Murdoch <[EMAIL PROTECTED]> wrote: > 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? > > Duncan Murdoch > > ______________________________________________ > 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 -------------------------------- John Fox Department of Sociology McMaster University Hamilton, Ontario, Canada http://socserv.mcmaster.ca/jfox/ ______________________________________________ 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