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 <[email protected]> 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
>
> ______________________________________________
> [email protected] 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]]
______________________________________________
[email protected] 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.