First, since you only update the 'ddtd' conditioned on 'value', you should be able to vectorize removing the loop. I let you figure out how to do that yourself.
Second, you apply the "$" operator multiple times in the loop that will definitely add some overhead. It should be faster to extract 'value' and 'ddtd' and work with those instead. /Henrik On 1/8/07, Benjamin Dickgiesser <[EMAIL PROTECTED]> wrote: > Hi, > > is it possible to do this operation faster? I am going over 35k data > entries and this takes quite some time. > > for(cnt in 2:length(sdata$date)) > { > > if(sdata$value[cnt] < sdata$value[cnt - 1]) { > sdata$ddtd[cnt] <- sdata$ddtd[cnt - 1] + > sdata$value[cnt - 1] - > sdata$value[cnt] > } > else sdata$ddtd[cnt] <- 0 > > } > return(sdata) > > Thank you, > Benjamin > > ______________________________________________ > 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. > ______________________________________________ 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.