Hi I am not sure if my solution is general enough
diff(c(0,which(1:10 %in% c(3, 5, 6, 10)))) [1] 3 2 1 4 Regards Petr > -----Original Message----- > From: r-help-boun...@r-project.org [mailto:r-help-bounces@r- > project.org] On Behalf Of gildororo...@mail-on.us > Sent: Tuesday, September 17, 2013 12:15 PM > To: r-help@r-project.org > Subject: [R] how to find interval? > > I can do this: > > > 1:10 %in% c(3, 5, 6, 10) > [1] FALSE FALSE TRUE FALSE TRUE TRUE FALSE FALSE FALSE TRUE > > but what I wish to get is: > > [1] 3 2 1 4 > > let me explain: > > 3 # [1:3] ends with TRUE, i.e. FALSE FALSE TRUE > 2 # [4:5] ends with TRUE, i.e. FALSE TRUE > 1 # [6:6] ends with TRUE, i.e. TRUE > 4 # [7:10] ends with TRUE, i.e. FALSE FALSE FALSE TRUE > > That is, %in% gave me a serial whether or not the element is in a set, > the length is equal to the former, i.e. 1:10 > > But I wish to get a serial of intevals of occurance of the element in > the set, the length is equal to the latter i.e. c(3, 5, 6, 10) > > With ths task of finding the intervals, I found, with googling, a > function called findInterval. I did read every line of that manual, and > it seems to be for a completely different purpose. > > Kindly help the poor newbie:) > > ______________________________________________ > R-help@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@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.