[Rd] HOW TO AVOID LOOPS
hadley wickham
h.wickham at gmail.com
Sat Apr 12 23:23:08 CEST 2008
On Sat, Apr 12, 2008 at 11:47 AM, carlos martinez
<martinezbula at earthlink.net> 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/
More information about the R-devel
mailing list