On 17-09-2013, at 12:41, Berend Hasselman <b...@xs4all.nl> wrote: > > On 17-09-2013, at 12:15, gildororo...@mail-on.us wrote: > >> 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) > > One way is > >> diff(c(0,which(1:10 %in% a))) > [1] 3 2 1 4 >
and of course a equals c(3, 5, 6, 10) ! Berend ______________________________________________ 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.