> -----Original Message----- > From: r-help-boun...@r-project.org > [mailto:r-help-boun...@r-project.org] On Behalf Of Petr PIKAL > Sent: Thursday, October 07, 2010 12:13 AM > To: rivercode > Cc: r-help@r-project.org > Subject: [R] Odp: Vector replace 0 elements without using a loop > > Hi > > > r-help-boun...@r-project.org napsal dne 07.10.2010 07:16:01: > > > > > Hi, > > > > With a vector like: > > > > x = c (22, 23, 22.5, 0,0,24, 0, 23.2, 23.5, 0,0,0, 26) > > > > How can I replace the 0's with the previous last value > without looping > > through the vector ? > > Change your zeroes to NA values > x[x==0]<-NA > > use na.locf function from zoo package > > library(zoo) > > x<-na.locf(x) > > Regards > Petr
Or if you want to do it from scratch try defining the following function. For each element of the logical vector x it returns the index of the last TRUE entry up to that point. indexOfMostRecentTrueEntry <- function (x) { stopifnot(is.logical(x)) x <- x & !is.na(x) # treat NA's as FALSE's retval <- cummax(seq_along(x) * x) retval[retval == 0] <- NA # in case x starts with FALSE retval } and get your result with x[indexOfMostRecentTrueEntry(x!=0)] Bill Dunlap Spotfire, TIBCO Software wdunlap tibco.com > > > > > > Something tells me I am missing the obvious. > > > > Thanks, > > Chris > > -- > > View this message in context: > http://r.789695.n4.nabble.com/Vector-replace-0- > > elements-without-using-a-loop-tp2966191p2966191.html > > Sent from the R help mailing list archive at Nabble.com. > > > > ______________________________________________ > > R-help@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. > > ______________________________________________ > R-help@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. > ______________________________________________ R-help@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.