[R] How to eliminate this for loop ?

David Winsemius dwinsemius at comcast.net
Mon Nov 8 15:03:57 CET 2010


On Nov 8, 2010, at 4:30 AM, Nick Sabbe wrote:

> Whenever you use a recursion (that cannot be expressed otherwise), you
> always need a (for) loop.

Not necessarily true ... assuming "a" is of length "n":

a[2:n] <- a[1:(n-1))]*b + cc[1:(n-1)]
# might work if b and n were numeric vectors of length 1 and cc had  
length >= n. (Never use "c" as a vector name.)
# it won't work if there are no values for the nth element at the  
beginning and you are building up a element by element.

And you always need to use operations that appropriate to the object  
type. So if "a" really is a list, this will always fail since  
arithmetic does not work on list elements. If on the other hand, the  
OP were incorrect in calling this a list and "a" were a numeric  
vector, there might be a chance of success if the rules of indexing  
were adhered to. The devil is in the details and the OP has not  
supplied enough code to tell what might happen.

-- 
David.

> Apply and the like do not allow to use the intermediary results  
> (i.e. a[i-1]
> to calculate a[i]).
>
> So: no, it cannot be avoided in your case, I guess.
>
>
> Nick Sabbe
> --
> ping: nick.sabbe at ugent.be
> link: http://biomath.ugent.be
> wink: A1.056, Coupure Links 653, 9000 Gent
> ring: 09/264.59.36
>
> -- Do Not Disapprove
>
>
>
> -----Original Message-----
> From: r-help-bounces at r-project.org [mailto:r-help-bounces at r-project.org 
> ] On
> Behalf Of PLucas
> Sent: maandag 8 november 2010 10:26
> 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-tp3031667p30316
> 67.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
> PLEASE do read the posting guide http://www.R-project.org/posting-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
> PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
> and provide commented, minimal, self-contained, reproducible code.

David Winsemius, MD
West Hartford, CT



More information about the R-help mailing list