You can vectorize it using cumsum.
cumsum(c(1, testvec))
all.equal(final.sum, cumsum(c(1, testvec)))
> -----Oorspronkelijk bericht-----
> Van: r-help-bounces at r-project.org [mailto:r-help-bounces at
r-project.org]
> Namens Chris82
> Verzonden: woensdag 5 oktober 2011 11:50
> Aan: r-help at r-project.org
> Onderwerp: [R] optimize R code: replace for loop
>
> Dear R Users,
>
> at the moment I am trying to optimize an R script.
>
> testvec <- c(0,1,0,1,1,1,1,0,0,1,0,1,0)
>
>
> sum.testvec <- vector()
> tempsum <- 1
> for (e in 1:length(testvec)){
> sum.testvec[e] <- tempsum+testvec[e]
> tempsum <- sum.testvec[e]
>
> }
>
> final.sum <- c(1,sum.testvec)
>
>
> Is there an option to do something with apply? Unfortunately I am not so
> familiar with the apply functions.
>
> Thanks.
>
> --
> View this message in context:
http://r.789695.n4.nabble.com/optimize-R-code-
> replace-for-loop-tp3873945p3873945.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.