jeffc wrote: > > Hi, > > I would like to extract the last row of each group in a data frame. > > The data frame is as follows > > Name Value > A 1 > A 2 > A 3 > B 4 > B 8 > C 2 > D 3 > > I would like to get a data frame as > Name Value > A 3 > B 8 > C 2 > D 3 > > Thank you for your suggestions in advance > > Jeff >
Try using the base function by() or ddply() from Hadley Wickham's plyr package: require( plyr ) tstData <- structure(list(Name = structure(c(1L, 1L, 1L, 2L, 2L, 3L, 4L), .Label = c("A", "B", "C", "D"), class = "factor"), Value = c(1L, 2L, 3L, 4L, 8L, 2L, 3L)), .Names = c("Name", "Value"), class = "data.frame", row.names = c(NA, -7L)) lastRows <- ddply( tstData, 'Name', function( group ){ return( data.frame( Value = tail( group[['Value']], n = 1 ) ) ) }) lastRows Name Value 1 A 3 2 B 8 3 C 2 4 D 3 Hope this helps! -Charlie ----- Charlie Sharpsteen Undergraduate Environmental Resources Engineering Humboldt State University -- View this message in context: http://old.nabble.com/extracting-the-last-row-of-each-group-in-a-data-frame-tp26378194p26378404.html Sent from the R help mailing list archive at Nabble.com. ______________________________________________ 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.