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: [EMAIL PROTECTED] ______________________________________________ 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