C W
2013-Jul-20 16:05 UTC
[R] How to search for a sequence(and its combination) inside a vector?
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
Berend Hasselman
2013-Jul-20 16:24 UTC
[R] How to search for a sequence(and its combination) inside a vector?
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.
John Kane
2013-Jul-20 16:52 UTC
[R] How to search for a sequence(and its combination) inside a vector?
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!
John Kane
2013-Jul-20 17:41 UTC
[R] How to search for a sequence(and its combination) inside a vector?
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!
John Kane
2013-Jul-20 18:40 UTC
[R] How to search for a sequence(and its combination) inside a vector?
My best guess it that you have something like 1 123123 in there somewhere try: which(cc[,1] == 6) and have a look at line 137 Essentially your data does not look exactly like what you think it does. John Kane Kingston ON Canada> -----Original Message----- > From: tmrsg11 at gmail.com > Sent: Sat, 20 Jul 2013 13:50:10 -0400 > To: jrkrideau at inbox.com, bhh at xs4all.nl > Subject: Re: [R] How to search for a sequence(and its combination) inside > a vector? > > Thanks, you guys are correct, I had different data. > But why I get length 5 and 6, should only be 1 to 3. > > Full 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, 2, 3, > 4, 5, 6, 8, 9, 10, 11, 12, 14, 1, 2, 3, 4, 9, 13, 15, 1, 2, 3, > 4, 6, 8, 9, 11, 12, 1, 2, 3, 7, 8, 9, 14, 1, 2, 3, 12, 1, 2, > 3, 4, 5, 10, 14, 1, 2, 3, 4, 5, 7, 8, 12, 13, 14, 1, 2, 3, 10, > 1, 3, 1, 2, 3, 5, 7, 8, 10, 11, 13, 14, 1, 2, 3, 4, 5, 8, 9, > 11, 12, 15, 1, 2, 3, 4, 7, 9, 10, 13, 1, 2, 3, 4, 5, 7, 10, 11, > 15, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 13, 15, 1, 2, 3, 6, 7, > 8, 9, 10, 12, 13, 14, 15, 1, 2, 3, 4, 7, 1, 2, 3, 5, 8, 13, 1, > 2, 3, 5, 8, 11, 15, 1, 2, 3, 1, 2, 3, 10, 1, 2, 3, 4, 7, 8, 9, > 10, 11, 12, 14, 1, 3, 9, 11, 13, 14, 1, 2, 3, 4, 5, 7, 8, 9, > 10, 11, 12, 13, 14, 15, 1, 2, 3, 4, 5, 13, 14, 15, 1, 2, 3, 11, > 13, 14, 1, 2, 3, 8, 1, 2, 3, 4, 5, 6, 8, 11, 12, 14, 1, 2, 3, > 5, 6, 9, 10, 11, 12, 15, 1, 2, 3, 4, 5, 9, 11, 12, 13, 1, 2, > 3, 4, 5, 13, 1, 2, 3, 4, 5, 6, 7, 8, 10, 11, 12, 13, 14, 15, > 1, 2, 3, 7, 8, 9, 1, 2, 3, 5, 7, 8, 9, 10, 12, 14, 15, 1, 2, > 3, 4, 5, 6, 8, 14, 1, 2, 3, 1, 2, 3, 10, 11, 13, 1, 2, 3, 4, > 9, 10, 12, 13, 14, 1, 2, 3, 4, 5, 6, 12, 1, 2, 3, 4, 5, 6, 7, > 10, 12, 13, 14, 15, 1, 2, 3, 6, 10, 14, 1, 2, 3, 4, 6, 7, 8, > 9, 10, 11, 13, 14, 1, 2, 3, 1, 2, 3, 4, 7, 8, 10, 1, 2, 3, 7, > 8, 11, 13, 15, 1, 2, 3, 4, 7, 8, 14, 15, 1, 2, 3, 4, 14, 1, 2, > 3, 4, 6, 7, 10, 12, 1, 2, 3, 5, 7, 8, 11, 13, 14, 15, 1, 2, 3, > 4, 1, 2, 3, 6, 7, 9, 11, 12, 13, 14, 1, 2, 3, 7, 11, 12, 1, 2, > 3, 5, 6, 8, 9, 10, 12, 15, 1, 2, 3, 5, 6, 8, 9, 11, 1, 2, 3, > 7, 8, 11, 13, 14, 15, 1, 2, 3, 4, 10, 12, 14, 1, 2, 3, 11, 12, > 13, 15, 1, 2, 3, 5, 7, 10, 11, 12, 13, 14, 15, 1, 3, 10, 1, 2, > 3, 1, 2, 3, 8, 10, 15, 1, 2, 3, 4, 7, 10, 12, 14, 1, 2, 3, 9, > 10, 11, 1, 2, 3, 6, 9, 10, 15, 1, 9, 14, 1, 2, 3, 7, 10, 14, > 1, 2, 3, 4, 7, 8, 9, 10, 11, 13, 15, 1, 2, 3, 5, 6, 7, 8, 9, > 11, 12, 13, 14, 15, 1, 2, 3, 6, 8, 11, 12, 1, 7, 1, 2, 3, 8, > 13, 15, 1, 2, 3, 4, 8, 9, 11, 1, 2, 3, 4, 7, 13, 14, 1, 2, 3, > 5, 6, 9, 1, 3, 7, 12, 13, 15, 1, 2, 3, 5, 6, 8, 10, 1, 3, 5, > 7, 8, 10, 11, 1, 2, 3, 5, 6, 11, 14, 1, 2, 3, 4, 9, 10, 11, 13, > 14, 1, 2, 3, 4, 6, 9, 14, 15, 1, 2, 3, 11, 1, 2, 3, 4, 5, 7, > 11, 13, 14, 15, 1, 2, 3, 4, 5, 6, 7, 8, 9, 11, 14, 1, 2, 3, 4, > 5, 6, 7, 9, 10, 11, 12, 14, 1, 4, 7, 1, 2, 3, 5, 6, 8, 9, 10, > 12, 13, 15, 1, 2, 3, 4, 5, 8, 10, 12, 13) > a <- vec %in% c(1, 2, 3) > b <- rle(a) > cc <- data.frame(b[[1]], b[[2]]) > names(cc) <- c("leng", 'val') > dd <- subset(cc, val ==TRUE ) > table(dd) > >> table(dd) > val > leng TRUE > 1 5 > 2 4 > 3 81 > 5 1 > 6 4 > > btw, >> length(vec) > [1] 762 > > So, the tally should add up to that if correct. > > -M > > > On Sat, Jul 20, 2013 at 1:41 PM, John Kane <jrkrideau at inbox.com> wrote: >> 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! >> >> ______________________________________________ >> 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.____________________________________________________________ FREE 3D MARINE AQUARIUM SCREENSAVER - Watch dolphins, sharks & orcas on your desktop!