Re: [R] the first and last case

From: Gabor Grothendieck <ggrothendieck_at_gmail.com>
Date: Wed 26 Jul 2006 - 23:36:48 EST

Try these:

# 1
library(Hmisc)
summary(y ~ ind, dat, fun = range, overall = FALSE)

# 2
# or with specified column names
f <- function(x) c(head = head(x,1), tail = tail(x,1)) summary(y ~ ind, dat, fun = f, overall = FALSE)

# 3
# another approach using by - same f as above do.call(rbind, by(dat$y, dat$ind, f))

# 4
# same but with with an ind column
g <- function(x) c(ind = x$ind[1], head = head(x$y,1), tail = tail(x$y,1)) do.call(rbind, by(dat, dat$ind, g))

On 7/26/06, Mauricio Cardeal <mcardeal@ufba.br> wrote:
> 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@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.
>



R-help@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. Received on Wed Jul 26 23:43:36 2006

Archive maintained by Robert King, hosted by the discipline of statistics at the University of Newcastle, Australia.
Archive generated by hypermail 2.1.8, at Thu 27 Jul 2006 - 00:17:07 EST.

Mailing list information is available at https://stat.ethz.ch/mailman/listinfo/r-help. Please read the posting guide before posting to the list.