Hi Benjamin!


##TRY THIS: THIS MAYBE MUCH FASTER, BECAUSE ONLY WORK WITH THE IMPORTANAT
ROWS - HOPE NO ERROR IN IT:D

puffer1 <- as.matrix(sdata$value)
puffer2 <- rbind(as.matrix(puffer1[2:nrow(puffer1),1]),0)

speedy <- puffer1 > puffer2
speedy <- (as.matrix(which(puffer1==TRUE)))+1
sdata$ddtd[]=0

for(cnt in 1:nrow(speedy))
       {

sdata$ddtd[speedy[cnt,1]] <- sdata$ddtd[(speedy[cnt,1]) - 1] +
sdata$value[(speedy[cnt,1]) - 1] -sdata$value[speedy[cnt,1]]
       }
       return(sdata)



#Zoltan



2007/1/8, Benjamin Dickgiesser <dickgiesser@gmail.com>:
>
> 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.
>

	[[alternative HTML version deleted]]

