Philip - I don't know if this is the "best" way, but it gives you the output you want.
Using your tf, vals <- rle(ifelse(tf, 5*which(tf), 0)) vals$values[vals$values == 0] <- vals$values[which(vals$values==0) - 1] inverse.rle(vals) [1] 5 5 5 5 25 30 30 Gladwin, Philip wrote: > Hello, > > What is the best way of solving this problem? > > answer <- ifelse(tf=TRUE, i * 5, previous answer) > where as an initial condition > tf[1] <- TRUE > > > For example if, > tf <- c(T,F,F,F,T,T,F) > over i = 1 to 7 > then the output of the function will be > answer = 5 5 5 5 25 30 30 > > Thank you. > > Phil, > > ______________________________________________ > 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.