[R] Function rank() for data frames (or multiple vectors)?

Sebastian Bauer sebastian.bauer at charite.de
Wed Aug 24 19:11:06 CEST 2011


Hi!

>> I'd like to rank rows of a data frame similar to what rank() does
>> for vectors. However, ties should be broken by columns that I
>> specify. If it is not possible to break a ties (because the row data
>> is essentially the same), I'd like to have the same flexibility that
>> rank() offers. Is there an elegant solution to this simple problem
>> in R? Basically, what I need is a mixture of order() and rank().
>> While the former allows to specify multiple vectors, it doesn't
>> provide the flexibility of rank() such that I can specify what
>> happens if ties can not be broken.
> An example of this "simple problem" would clarify this greatly. I
> cannot tell what "flexibility" in 'rank' is missing in 'order'.

Thanks for your answer. For instance, if I have two vectors such as

1 1
1 2
1 2
1 3
2 1

that I want combinedly ranked. I'd like to get an output

1
2
2
4
5

or (ties.method=average)

1
2.5
2.5
4
5

Basically, I need a function similar to the rank() function that accepts
more than one vector (as order() does).

Best,
Sebastian



More information about the R-help mailing list