# [R] Finding and manipulation clusters of numbers in a sequence of numbers

mdvaan mathijsdevaan at gmail.com
Mon Jul 16 18:17:43 CEST 2012

```Hi,

I have the following sequence:
in <- c(0, 0, 0, 2, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 2, 0, 2, 0, 0, 2)

>From this sequence I would like to get to the following sequence:
out <- c(0, 0, 0, 3, 3, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0,
0, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 0, 2, 0, 2, 0, 0, 2)

Basically, what I would like to do for each number greater than 0,  is to
until one of those numbers is equal to 0.

I could manually repeat the loops below until "sequence" stops changing but
there must be a smarter way. Any suggestions? Thanks!

sequence <- c(0, 0, 0, 2, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0,
0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 2, 0, 2, 0, 0, 2)
for (h in 2:(length(sequence) - 1))
{
sequence[h] <- ifelse(sequence[h] > 0, sequence[h-1] + sequence[h], 0)
}

for (h in 1:(length(sequence) - 1))
{
sequence[h] <- ifelse(sequence[h] > 0 & sequence[h+1] > sequence[h],
sequence[h+1], sequence[h])
}

--
View this message in context: http://r.789695.n4.nabble.com/Finding-and-manipulation-clusters-of-numbers-in-a-sequence-of-numbers-tp4636661.html
Sent from the R help mailing list archive at Nabble.com.

```