[R] How to search for a sequence(and its combination) inside a vector?

C W tmrsg11 at gmail.com
Sat Jul 20 18:05:42 CEST 2013


Hi R list,

I have a sequence repeating 1:15 .  Some numbers are deleted.  I want
to find how many times 1, 2, 3 appeared.
Basically, I want to "grab" the beginning of the sequence and tally it up.

R code:

> vec <- c(1, 2, 3, 4, 5, 6, 7, 8, 13, 1, 2, 3, 5, 7, 8, 10, 12, 13, 14,
15, 1, 2, 3, 5, 6, 10, 12, 13, 1, 2, 3, 4, 5, 6, 7, 12, 13, 14,
15, 1, 2, 3, 6, 9, 10, 11, 13, 14, 1, 7, 10, 13, 1, 2, 3, 4,
6, 7, 9, 11, 14, 1, 2, 3, 5, 9, 10, 11, 12, 14, 1, 2, 3, 4, 1,
2, 3, 4, 11, 12, 14, 1, 2, 3, 4, 8, 11, 12, 1, 2, 3, 4, 5, 7,
8, 9, 11, 12, 15, 3, 14, 1, 2, 3, 6, 10, 11, 13, 14, 1)

> a <- vec %in% c(1, 2, 3)
> a
  [1]  TRUE  TRUE  TRUE FALSE FALSE FALSE FALSE FALSE FALSE  TRUE
TRUE  TRUE FALSE FALSE
 [15] FALSE FALSE FALSE FALSE FALSE FALSE  TRUE  TRUE  TRUE FALSE
FALSE FALSE FALSE FALSE
 [29]  TRUE  TRUE  TRUE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
FALSE  TRUE  TRUE  TRUE
 [43] FALSE FALSE FALSE FALSE FALSE FALSE  TRUE FALSE FALSE FALSE
TRUE  TRUE  TRUE FALSE
 [57] FALSE FALSE FALSE FALSE FALSE  TRUE  TRUE  TRUE FALSE FALSE
FALSE FALSE FALSE FALSE
 [71]  TRUE  TRUE  TRUE FALSE  TRUE  TRUE  TRUE FALSE FALSE FALSE
FALSE  TRUE  TRUE  TRUE
 [85] FALSE FALSE FALSE FALSE  TRUE  TRUE  TRUE FALSE FALSE FALSE
FALSE FALSE FALSE FALSE
 [99] FALSE  TRUE FALSE  TRUE  TRUE  TRUE FALSE FALSE FALSE FALSE FALSE  TRUE

> rle(a)
Run Length Encoding
  lengths: int [1:29] 3 6 3 8 3 5 3 8 3 6 ...
  values : logi [1:29] TRUE FALSE TRUE FALSE TRUE FALSE ...

What should I do after this?

Thanks,
Mike



More information about the R-help mailing list