Skip to content

detect subset in series

4 messages · David Winsemius, R. Michael Weylandt, threshold

#
Dear R Users, I am curious whether there is any simple solution o my problem.

My example 'series':
series <- c(1,1,1,0,1,0,0,1,1,0,0,0,0,1)

My 'subset' of interest:
subset <- c(0,0,0,0)

Is there any function which tells me that the subset exists in my series,
and gives me position where in series is starts. In provided example the
subset exists and covers the elements 10:13 of the 'series'.

Thanks a lot , robert

--
View this message in context: http://r.789695.n4.nabble.com/detect-subset-in-series-tp4076285p4076285.html
Sent from the R help mailing list archive at Nabble.com.
#
On Nov 16, 2011, at 8:25 AM, threshold wrote:

            
?rle
?cumsum   # may be needed to accumulate the number of postions before  
the rle$lengths criterion is first met.
#
If your data is also binary like that below, it might be useful/easier
to use regular expressions tools as well:

e.g.,
series <- c(1,1,1,0,1,0,0,1,1,0,0,0,0,1)
subset <- c(0,0,0,0)

print(regexpr(paste(subset, collapse = ""),paste(series, collapse = "")))

Michael
On Wed, Nov 16, 2011 at 9:55 AM, David Winsemius <dwinsemius at comcast.net> wrote:
#
Thanks for the answer. I found that smth like below works

subset <- c(1,0,0)
series <- c(1,1,1,0,1,0,0,1,1,0,0,0,0,1)

subset1 <- paste(subset, collapse='')
series1 <- paste(series, collapse='')

xx <- gregexpr(subset1, series1, fixed=TRUE)
as.numeric(xx[[1]]) ## yields the first element numbers in series
[1] 5 9

--
View this message in context: http://r.789695.n4.nabble.com/detect-subset-in-series-tp4076285p4076644.html
Sent from the R help mailing list archive at Nabble.com.