Newbie: Ranking a data frame, grouped by 2 or more columns
On Fri, Sep 26, 2008 at 3:54 PM, Matthew Pettis
<matthew.pettis at gmail.com> 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