Hi Richard, There are probably better ways, but here is one approach: Dat <- read.table(textConnection("ID, year, score tom, 1995, 88 rick, 1994, 90 mary, 2000, 97 tom, 1998, 60 mary, 1998,100"), header=TRUE, sep=",")
MaxScore <- aggregate(Dat$score, list(Dat$ID), max) names(MaxScore) <- c("ID", "score") MaxYear <- merge(Dat, MaxScore) Best, Ista On Tue, Mar 9, 2010 at 1:35 PM, Tan, Richard <r...@panagora.com> wrote: > Hi, I have a data frame with 3 columns: ID, year and score. How can I > select for each unique ID, the year that has the max score? For > example, for data frame > > ID, year, score > tom, 1995, 88 > rick, 1994, 90 > mary, 2000, 97 > tom, 1998, 60 > mary, 1998,100 > > I shall have > ID, year, score > tom, 1995, 88 > rick, 1994, 90 > mary, 1998,100 > > Thanks, > Richard > > [[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. > -- Ista Zahn Graduate student University of Rochester Department of Clinical and Social Psychology http://yourpsyche.org ______________________________________________ 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.