[R] Generalized cumsum?

OKB (not okblacke) brenbarn at brenbarn.net
Thu Sep 17 03:04:15 CEST 2009


David Winsemius wrote:

>>         No, Reduce reduces an entire vector to a single value by  
>>    repeatedly 
>> combining adjacent elements.  I'm looking to convert a vector to  
>> another vector where each element is some arbitrary aggregating
>> function   applied to the first n elements of the vector. 
> 
> Yes. You need to look again:
> 
> accumulate=FALSE by default, but is subject to change.-

    	Ah, sorry.  Yes, you're right.  However, this still doesn't satisfy 
my needs, because since Reduce successively combines one element at a 
time, it doesn't work for functions that don't self-compose 
transitively.  For instance:

> Reduce(mean, c(1,2,3,4), accumulate=T)
[1] 1 1 1 1

but I want

> cumapply(mean, c(1,2,3,4))
[1] 1 1.5 2 2.5

    	Is there anything this general?

Thanks,
-- 
--OKB (not okblacke)
Brendan Barnwell
"Do not follow where the path may lead.  Go, instead, where there is
no path, and leave a trail."
	--author unknown




More information about the R-help mailing list