On Sat, Apr 12, 2008 at 11:47 AM, carlos martinez
<[EMAIL PROTECTED]> wrote:
> > Looking for a simple, effective a minimum execution time solution.
>  >
>  > For a vector as:
>  >
>  > c(0,0,1,0,1,1,1,0,0,1,1,0,1,0,1,1,1,1,1,1)
>  >
>  To transform it to the following vector without using any loops:
>
>  > (0,0,1,0,1,2,3,0,0,1,2,0,1,0,1,2,3,4,5,6)
>  >
>  Appreciate any suggetions.

How about:

unlist(lapply(split(x, cumsum(x == 0)), seq_along)) - 1

Hadley


-- 
http://had.co.nz/

______________________________________________
R-devel@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-devel

Reply via email to