You can use ave(), like this: ke$maxa <- ave(ke$a, as.factor(ke$patid), FUN=max) greetings, remko -- View this message in context: http://r.789695.n4.nabble.com/manipulating-longitudinal-data-in-r-tp4649855p4650138.html Sent from the R help mailing list archive at Nabble.com.