Skip to content
Back to formatted view

Raw Message

Message-ID: <644e1f320809261628u315c51f0y2b729ebd105e8572@mail.gmail.com>
Date: 2008-09-26T23:28:46Z
From: jim holtman
Subject: Newbie: Ranking a data frame, grouped by 2 or more columns
In-Reply-To: <82ba77b80809261354q47c21a64rb6ee185e28e6339a@mail.gmail.com>

Try this:

> x
  V1 V2  V3
1  a  w 200
2  a  w 100
3  b  w 500
4  b  w 200
5  b  z 300
6  b  z 400
> x$rank <- ave(x$V3, x$V1, x$V2, FUN=rank)
> x
  V1 V2  V3 rank
1  a  w 200    2
2  a  w 100    1
3  b  w 500    2
4  b  w 200    1
5  b  z 300    1
6  b  z 400    2
>


On Fri, Sep 26, 2008 at 4: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?
>
> Thanks,
> Matt
> --
> It is from the wellspring of our despair and the places that we are
> broken that we come to repair the world.
> -- Murray Waas
>
> ______________________________________________
> R-help at 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.
>



-- 
Jim Holtman
Cincinnati, OH
+1 513 646 9390

What is the problem that you are trying to solve?