I believe you want to use 'diff' and 'which' as in:

> diff(which(c(TRUE, 1:10 %in% c(3, 5, 6, 10) )))
[1] 3 2 1 4


Pat

On 17/09/2013 11: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)

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.


--
Patrick Burns
pbu...@pburns.seanet.com
twitter: @burnsstat @portfolioprobe
http://www.portfolioprobe.com/blog
http://www.burns-stat.com
(home of:
 'Impatient R'
 'The R Inferno'
 'Tao Te Programming')

______________________________________________
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