I appreciate your effort but I'm fairly certain that won't work. The loop I have written is pseudo "recursive" in the sense that outvector depends on its previous value and this previous value may have changed because it depnds on the previous value of itself. The fact that there is no outvector on the right side of your last line of code tells me that it's probably not what I want. I'll Try it though. It can't hurt. I do appreciate the help.
-----Original Message----- From: Jerome Asselin [mailto:[EMAIL PROTECTED] Sent: Tuesday, October 24, 2006 2:54 PM To: Leeds, Mark (IED) Cc: R-help@stat.math.ethz.ch Subject: Re: [R] avoiding a loop On Tue, 2006-10-24 at 14:36 -0400, Leeds, Mark (IED) wrote: > I think I asked a similar question 3 years ago to the Splus list and > I think the answer was no or noone answered so noone should spend more > than 5 minutes on this because it could definitely be a waste of time. > > My question is whether the function below can be rewritten without a > for loop. apply is fine if it can be done that way but i doubt it. I > call it a lot and would prefer to not loop. > > #--------------------------------------------------------------------- > -- > -------------------------- > > constructLt<-function(invector) { > > outvector<-invector > > for ( i in 2:length(invector) ) { > if ( invector[i] < 1 ) { > outvector[i]<-invector[i]*outvector[i-1] > } > } > > return(outvector) > > } You sure can vectorize this. Try this below... I haven't tested, but it should be close to your solution. There's also a <- invector[-1] outvector <- invector wh <- which(a<1)+1 outvector[wh] <- a[wh] * invector[-length(invector)][wh-1] outvector HTH, Jerome -- Jerome Asselin, M.Sc., Agent de recherche, RHCE CHUM -- Centre de recherche 3875 rue St-Urbain, 3e etage // Montreal QC H2W 1V1 Tel.: 514-890-8000 Poste 15914; Fax: 514-412-7106 -------------------------------------------------------- This is not an offer (or solicitation of an offer) to buy/se...{{dropped}} ______________________________________________ R-help@stat.math.ethz.ch 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.