Ths should do it: > do.call(rbind, lapply(split(x, x$ID), tail, 1)) ID Type N 45900 45900 I 7 46550 46550 I 7 49270 49270 E 3
On Wed, May 6, 2009 at 6:09 PM, Max Webber <ubber...@gmail.com> wrote: > Given a dataframe like > > > data > ID Type N > 1 45900 A 1 > 2 45900 B 2 > 3 45900 C 3 > 4 45900 D 4 > 5 45900 E 5 > 6 45900 F 6 > 7 45900 I 7 > 8 49270 A 1 > 9 49270 B 2 > 10 49270 E 3 > 18 46550 A 1 > 19 46550 B 2 > 20 46550 C 3 > 21 46550 D 4 > 22 46550 E 5 > 23 46550 F 6 > 24 46550 I 7 > > > > containing an identifier (ID), a variable type code (Type), and > a running count of the number of records per ID (N), how can I > return a dataframe of only those records with the maximum value > of N for each ID? For instance, > > > data > ID Type N > 7 45900 I 7 > 10 49270 E 3 > 24 46550 I 7 > > I know that I can use > > > tapply ( data $ N , data $ ID , max ) > 45900 46550 49270 > 7 7 3 > > > > to get the values of the maximum N for each ID, but how is it > that I can find the index of these values to subsequently use to > subscript data? > > > -- > maxine-webber > > ______________________________________________ > 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<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? [[alternative HTML version deleted]] ______________________________________________ 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.