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.