[R] Newbie: Ranking a data frame, grouped by 2 or more columns
jim holtman
jholtman at gmail.com
Sat Sep 27 01:28:46 CEST 2008
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?
More information about the R-help
mailing list