On Jul 16, 2012, at 10:27 AM, jcrosbie wrote:

Thank you, That was very helpful.

I do have another problem along the same lines. But I can not think of a way
to do this with  a function like ddply or aggregate.

Example:
x = sample(0:1,42,TRUE)
[1] 1 1 1 1 0 1 0 0 1 1 1 1 1 0 0 0 1 0 0 1 1 0 0 0 0 1 1 0 0 0 1 0 1 1 0 1
1 1 0 0 0 0

> x <- scan()
1: 1 1 1 1 0 1 0 0 1 1 1 1 1 0 0 0 1 0 0 1 1 0 0 0 0 1 1 0 0 0 1 0 1 1 0 1
37: 1 1 0 0 0 0
43:
Read 42 items
> sx <- tapply(x, cumsum(x==0), FUN= function(z) sum(z) )
> sx[sx>0]
 0  1  3  6  8 12 15 16 17
 4  1  5  1  2  2  1  2  3
> unname(sx[sx>0])
[1] 4 1 5 1 2 2 1 2 3

I want to find create a new vector such that the sums of the 1's stops each
time there is a 0 and starts again next time there is a one.
Output would be:
4,1, 5, 1,2,2,1,2,3



David Winsemius, MD
today: Springdale, UT

______________________________________________
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