On Fri, Sep 26, 2008 at 3:54 PM, Matthew Pettis
<[EMAIL PROTECTED]> wrote:
> Hi,
>
> I'd like to rank obs in a data frame as subset by 2 or more columns...
> The example input would look like the following:
>
> ====+====+====+====+
> x   y   v
> --  --  --
> a   w   200
> a   w   100
> b   w   500
> b   w   200
> b   z   300
> b   z   400
> ====+====+====+====+
>
> And the data frame I want to create is below:
> ====+====+====+====+
> x   y   v   rank
> --  --  --  ----
> a   w   200    1
> a   w   100    2
> b   w   500    1
> b   w   200    2
> b   z   300    2
> b   z   400    1
> ====+====+====+====+
>
> Can someone help me with this?

This is easy to do with the (very soon to be released) plyr package:

library(plyr)
ddply(df, .(x, y), transform, rank = rank(v))

You can learn more about it at http://had.co.nz/plyr

Hadley

-- 
http://had.co.nz/

______________________________________________
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