# [R] How to eliminate this for loop ?

Greg Snow Greg.Snow at imail.org
Tue Nov 9 17:30:50 CET 2010

```Oops, my version added cc instead of subtracted, it still works if you multiply cc by -1 (except the initial 1).

--
Gregory (Greg) L. Snow Ph.D.
Statistical Data Center
Intermountain Healthcare
greg.snow at imail.org
801.408.8111

> -----Original Message-----
> From: r-help-bounces at r-project.org [mailto:r-help-bounces at r-
> project.org] On Behalf Of Greg Snow
> Sent: Monday, November 08, 2010 1:15 PM
> To: PLucas; r-help at r-project.org
> Subject: Re: [R] How to eliminate this for loop ?
>
> If you are willing to shift the c vector by 1 and have 1 (the initial
> value) as the start of c, then you can just do:
>
> cumsum( cc * b^( (n-1):0 ) ) / b^( (n-1):0 )
>
> to compare:
>
> cc <- c(1, rnorm(999) )
> b <- 0.5
> n <- length(cc)
>
> a1 <- numeric(100)
> a1[1] <- 1
>
> system.time(for(i in 2:n ) {
> 	a1[i] <- b*a1[i-1] + cc[i]
> })
>
> system.time(a2 <- cumsum( cc * b^( (n-1):0 ) ) / b^( (n-1):0 ))
>
> all.equal(a1,a2)
>
> Though you could have problems with the b^ part if the length gets too
> long.
>
> --
> Gregory (Greg) L. Snow Ph.D.
> Statistical Data Center
> Intermountain Healthcare
> greg.snow at imail.org
> 801.408.8111
>
>
> > -----Original Message-----
> > From: r-help-bounces at r-project.org [mailto:r-help-bounces at r-
> > project.org] On Behalf Of PLucas
> > Sent: Monday, November 08, 2010 2:26 AM
> > To: r-help at r-project.org
> > Subject: [R] How to eliminate this for loop ?
> >
> >
> > Hi, I would like to create a list recursively and eliminate my for
> loop
> > :
> >
> > a<-c()
> > a[1] <- 1; # initial value
> > for(i in 2:N) {
> > 	a[i]<-a[i-1]*b - c[i-1] # b is a value, c is another vector
> > }
> >
> >
> > Is it possible ?
> >
> > Thanks
> > --
> > View this message in context: http://r.789695.n4.nabble.com/How-to-
> > eliminate-this-for-loop-tp3031667p3031667.html
> > Sent from the R help mailing list archive at Nabble.com.
> >
> > ______________________________________________
> > R-help at r-project.org mailing list
> > https://stat.ethz.ch/mailman/listinfo/r-help
> > guide.html
> > and provide commented, minimal, self-contained, reproducible code.
>
> ______________________________________________
> R-help at r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/r-help