could it be dat[unlist(tapply(1:nrow(dat), ind, range)),] ? stefano >-----Messaggio originale----- >Da: r-help-bounces at stat.math.ethz.ch >[mailto:r-help-bounces at stat.math.ethz.ch]Per conto di >Mauricio Cardeal >Inviato: 26 July, 2006 14:22 >A: r-help at stat.math.ethz.ch >Oggetto: [R] the first and last case > > >Hi all > >Sometime ago I asked for a solution about how to aggregate >data and the >help was wonderful. Now, I?d like to know how to extract for each >individual case below the first and the last observation to >obtain this: > >ind y >1 8 >1 9 >2 7 >2 11 >3 9 >3 10 >4 8 >4 5 > ># Below the example: > >ind <- c(1,1,1,2,2,3,3,3,4,4,4,4) >y <- c(8,10,9,7,11,9,9,10,8,7,6,5) >dat <- as.data.frame(cbind(ind,y)) >dat >attach(dat) >mean.ind <- aggregate(dat$y, by=list(dat$ind), mean) >mean.ind > >Thanks >Mauricio > >______________________________________________ >R-help at stat.math.ethz.ch 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.