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.

Reply via email to