[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