Hi: Try the following: f <- function(x, n) { r <- rle(x) t1 <- cumsum(r$lengths)[r$values == 0L] + 1 repl <- as.vector(mapply(seq, t1, t1 + n - 1)) replace(x, repl, 0) }
f(x, 3) HTH, Dennis On Fri, Sep 10, 2010 at 10:51 AM, skan <juanp...@gmail.com> wrote: > > Hello > > Imagine I have a vector with ones and zeroes > > I write it compactly: > 1111111100001111111111110000000001111111111100101 > > I need to get a new vector replacing the "N" ones following the zeroes to > new zeroes. > > For example for N = 3 > 1111111100001111111111110000000001111111111100101 becomes > 1111111100000001111111110000000000001111111100000 > > I can do it with a for loop but I've read is not a good practice, How can > I > do it then? > > cheers > > > My vector is a zoo series, indeed, but I guess it doesn't make any > difference. > -- > View this message in context: > http://r.789695.n4.nabble.com/adding-zeroes-after-old-zeroes-in-a-vector-tp2534824p2534824.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. > [[alternative HTML version deleted]] ______________________________________________ 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.