[R] blockwise sums

Wolski wolski at molgen.mpg.de
Tue Aug 31 14:40:06 CEST 2004


Hi!

ind<-c(sort(rep(1:floor(length(x)/ 3 ) ,  3 )) , floor(length(x)/ 3 )+1)



by(x,ind,sum)

my.blockwisesum<-function(x,n,...)
{
	ind<-c(sort(rep(1:floor(length(x)/ n ) ,  n )) , floor(length(x)/ n )+1)
	return(tapply(x,ind,sum))
}


/Eryk


*********** REPLY SEPARATOR  ***********

On 8/31/2004 at 2:19 PM Lutz Prechelt wrote:

>>>I am looking for a function like 
>>>  my.blockwisesum(vector, n)
>>>that computes sums of disjoint subsequences of length n from vector
>>>and can work with vector lengths that are not a multiple of n.
>>>
>>>It should give me for instance
>>>  my.blockwisesum(1:10, 3) == c(6, 15, 24, 10)
>>>
>>>Is there a builtin function that can do this?
>>>One could do it by coercing the vector into a matrix of width n,
>>>and then use apply,
>>>but that is cumbersome if the length is not divisible by n, 
>>>is it not?
>>>Any other ideas?
>>>
>>>  Lutz
>>>
>>>Prof. Dr. Lutz Prechelt;  prechelt at inf.fu-berlin.de
>>>Institut fuer Informatik; Freie Universitaet Berlin
>>>Takustr. 9; 14195 Berlin; Germany
>>>+49 30 838 75115; http://www.inf.fu-berlin.de/inst/ag-se/
>>>
>>>______________________________________________
>>>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



Dipl. bio-chem. Witold Eryk Wolski             @         MPI-Moleculare Genetic   
Ihnestrasse 63-73 14195 Berlin                'v'    
tel: 0049-30-83875219                        /   \       
mail: witek96 at users.sourceforge.net        ---W-W----    http://www.molgen.mpg.de/~wolski 
      wolski at molgen.mpg.de




More information about the R-help mailing list