Hi,
It's not just the for loop, you are also growing objects in your code (z).
Consider ?cumsum
Cheers,
Romain
--
Mango Solutions
data analysis that delivers
Tel: +44(0) 1249 467 467
Mob: +44(0) 1249 467 468
Fax: +44(0) 7813 526 123
-----Original Message-----
From: r-help-bounces@r-project.org on behalf of tom soyer
Sent: Tue 11/12/2007 11:17
To: r-help@r-project.org
Subject: [R] Alternative to For Loop?
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!
--
Tom
[[alternative HTML version deleted]]
______________________________________________
R-help@r-project.org 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.
[[alternative HTML version deleted]]