Re: [R] subtotal, submean, aggregate

From: Roger Bivand <Roger.Bivand_at_nhh.no>
Date: Mon 27 Feb 2006 - 01:18:14 EST


On Sun, 26 Feb 2006, Patrick Giraudoux wrote:

> Dear All,
>
> I would like to make partial sums (or means or any other function) of
> the values in intervals along a sequence (spatial transect) where groups
> are defined.
>
> For instance:
>
> habitats<-rep(c("meadow","forest","meadow","pasture"),c(10,5,12,6))
> observations<-rpois(length(habitats),2)
> transect<-data.frame(observations=observations,habitats=habitats)
>
> aggregate() is not suitable for my purpose because I want a result
> respecting the order of the habitats encountered although they may have
> the same name (and not pooling each group on each level of the factor
> created). For instance, the output of the ideal function
> mynicefunction() would be something as:
>
> mynicefunction(transect$observations, by=list(transect$habitats),sum)
> meadow 16
> forest 9
> meadow 21
> pasture 17
>
> and not
>
> aggregate(transect$observations,by=list(transect$habitats),sum)
> Group.1 x
> 1 forest 9
> 2 meadow 37
> 3 pasture 17
>
> Did anybody hear about such a function already written in R? If no, any
> idea to make it simple and elegant to write?

I got as far as:

rle.habs <- rle(habitats)
habitats1 <- rep(make.names(rle.habs$values, unique=TRUE), rle.habs$lengths) aggregate(observations,by=list(habitats1),sum)

making an extra habitats vector with a unique label for each run.

Since I don't know your seed, the results are not the same, but rle() is quite good for runs.

Roger

>
> Cheers,
>
> Patrick Giraudoux
>
> ______________________________________________
> 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
>

-- 
Roger Bivand
Economic Geography Section, Department of Economics, Norwegian School of
Economics and Business Administration, Helleveien 30, N-5045 Bergen,
Norway. voice: +47 55 95 93 55; fax +47 55 95 95 43
e-mail: Roger.Bivand@nhh.no

______________________________________________
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
Received on Mon Feb 27 01:26:21 2006

This archive was generated by hypermail 2.1.8 : Fri 03 Mar 2006 - 03:42:45 EST