tom soyer wrote:
> Hi,
>
> I am doing a calculation on a long series using a For Loop. Here is an
> example of the calculation:
>
> accumulate=function(x){
> y=0
> z=0
> for(i in 1:length(x)){
> y=y+x[i]
> z=c(z,y)
>
> }
> return(z[2:length(z)])
> }
>
>
>> x=c(1:10)
>> x
>>
> [1] 1 2 3 4 5 6 7 8 9 10
>
>> accumulate(x)
>>
> [1] 1 3 6 10 15 21 28 36 45 55
>
>
> Although the For Loop works, looping through an array is time consuming and
> inefficient when the series is large. Does anyone know a faster way of doing
> the same calculation? Thanks!
cumsum(x) is what you want.
Duncan Murdoch
______________________________________________
[email protected] 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.