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.

Reply via email to