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

John Kane jrkrideau at inbox.com
Sat Jul 20 19:41:34 CEST 2013


Beats me. I get: 
table(dd)
    val
leng TRUE
   1    3
   3   12

What does dd look like.  In my case I get this where the first column is the row number
dd
   leng  val
1     3 TRUE
3     3 TRUE
5     3 TRUE
7     3 TRUE
9     3 TRUE
11    1 TRUE
13    3 TRUE
15    3 TRUE
17    3 TRUE
19    3 TRUE
21    3 TRUE
23    3 TRUE
25    1 TRUE
27    3 TRUE
29    1 TRUE

John Kane
Kingston ON Canada


> -----Original Message-----
> From: tmrsg11 at gmail.com
> Sent: Sat, 20 Jul 2013 13:11:47 -0400
> To: jrkrideau at inbox.com
> Subject: Re: [R] How to search for a sequence(and its combination) inside
> a vector?
> 
> Thanks John.
> 
> Why do I get length of 5 and 6?  I thought I am only tallying up 1 to 3?
>> table(dd)
>     val
> leng TRUE
>    1    5
>    2    4
>    3   81
>    5    1
>    6    4
> 
> -M
> 
> On Sat, Jul 20, 2013 at 12:52 PM, John Kane <jrkrideau at inbox.com> wrote:
>> Taking Berend's example a bit further, this seems to work
>> 
>> If you use str(b) you will see it is a list
>> 
>> b <- rle(a)
>> cc  <-  data.frame(b[[1]], b[[2]])
>> names(cc)  <-  c("leng", 'val')
>> dd  <-  subset(cc, val ==TRUE )
>> table(dd)
>> 
>> John Kane
>> Kingston ON Canada
>> 
>> 
>>> -----Original Message-----
>>> From: tmrsg11 at gmail.com
>>> Sent: Sat, 20 Jul 2013 12:36:55 -0400
>>> To: bhh at xs4all.nl
>>> Subject: Re: [R] How to search for a sequence(and its combination)
>>> inside
>>> a vector?
>>> 
>>> Hi Berend
>>> I am looking for a table,
>>> # of times one element (out of 1, 2, 3) showed up, two elements, and
>>> all
>>> three.
>>> 
>>> I am trying, don't know if this works:
>>> 
>>>> aa <- rle(a)
>>>> b <- aa$lengths[aa$values]
>>>> table(b)
>>> b
>>>  1  3
>>>  3 12
>>> 
>>> Mike
>>> 
>>> 
>>> 
>>> On Sat, Jul 20, 2013 at 12:24 PM, Berend Hasselman <bhh at xs4all.nl>
>>> wrote:
>>>> 
>>>> On 20-07-2013, at 18:05, C W <tmrsg11 at gmail.com> wrote:
>>>> 
>>>>> 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?
>>>>> 
>>>> 
>>>> Well how about
>>>> 
>>>> sum(a)
>>>> 
>>>> or
>>>> 
>>>> b <- rle(a)
>>>> sum(b$lengths[b$values])
>>>> 
>>>> Berend
>>>> 
>>>>> Thanks,
>>>>> Mike
>>>>> 
>>>>> ______________________________________________
>>>>> R-help at 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.
>>>> 
>>> 
>>> ______________________________________________
>>> R-help at 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.
>> 
>> ____________________________________________________________
>> Receive Notifications of Incoming Messages
>> Easily monitor multiple email accounts & access them with a click.
>> Visit http://www.inbox.com/notifier and check it out!
>> 
>>

____________________________________________________________
FREE ONLINE PHOTOSHARING - Share your photos online with your friends and family!
Visit http://www.inbox.com/photosharing to find out more!



More information about the R-help mailing list