Hi:
Here's one way:
d <- read.table(textConnection("
ind xloc yloc gonad
1 1 5 2 12
2 1 5 4 25
3 1 3 3 30
4 1 5 4 10
5 1 1 4 08
10 1 1 4 11"), header = TRUE)
closeAllConnections()
library(plyr)
dsum <- ddply(d, .(xloc, yloc), summarise, ind = sum(ind), gonad sum(gonad))
dsum[order(dsum$gonad, decreasing = TRUE), ][1:2, ]
xloc yloc ind gonad
4 5 4 2 35
2 3 3 1 30
I hope this isn't homework....
Dennis
On Fri, Feb 25, 2011 at 1:01 PM, Nicolas Gutierrez <nicolasg@uw.edu>
wrote:
> Hi All,
>
> I've been doing circles with this all morning, although I'm sure
there's a
> simple solution. I have a data.frame "pop" as follows:
>
> > pop
>
> ind xloc yloc gonad
> 1 1 5 2 12
> 2 1 5 4 25
> 3 1 3 3 30
> 4 1 5 4 10
> 5 1 1 4 08
> . . . . .
> 10 1 1 4 11
>
> And I need the following steps:
>
> 1. Sum "gonad" by combining (xloc, yloc) as follows and create
data.frame
> "fish":
>
> > fish
>
> ind xloc yloc gonad
> 1 1 5 2 12
> 2 2 5 4 35
> 3 1 3 3 30
> 4 2 1 4 19
>
> 2. Extract the 2 highest values of "gonad":
>
> > new.fish
>
> ind xloc yloc gonad
> 1 2 5 4 35
> 2 1 3 3 31
>
> 3. Delete "fish" from "pop" (2 data.frames).
>
> Hope you get the idea and thanks for any help!!
>
> Nico
>
> ______________________________________________
> 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.
>
[[alternative HTML version deleted]]