Alex Rivera | Logout

select rows with largest value of variable within a group in r

Asked 2010-05-12T19:35:01.130
9
a.2<-sample(1:10,100,replace=T)
b.2<-sample(1:100,100,replace=T)
a.3<-data.frame(a.2,b.2)

r<-sapply(split(a.3,a.2),function(x) which.max(x$b.2))

a.3[r,]

returns the list index, not the index for the entire data.frame

Im trying to return the largest value of b.2 for each subgroup of a.2. How can I do this efficiently?

Edit
Report

1 Answer

8
library(plyr)
ddply(a.3, "a.2", subset, b.2 == max(b.2))
answered 2010-05-13T12:54:08.843

Your Answer