Mark, It's a bit unclear whether you're looking for a run of exactly 3, or at least 3. If it's exactly 3, what Prof. Koenker suggested (using rle()) should help you a lot. If you want runs of at least 3, it should work similarly as well.
set.seed(1) (x <- sample(c(-1, 1), 100, replace=TRUE))
[1] -1 -1 1 1 -1 1 1 1 1 -1 -1 -1 1 -1 1 -1 1 1 -1 1 1 -1 1 -1 -1 -1 [27] -1 -1 1 -1 -1 1 -1 -1 1 1 1 -1 1 -1 1 1 1 1 1 1 -1 -1 1 1 -1 1 [53] -1 -1 -1 -1 -1 1 1 -1 1 -1 -1 -1 1 -1 -1 1 -1 1 -1 1 -1 -1 -1 1 1 -1 [79] 1 1 -1 1 -1 -1 1 -1 1 -1 -1 -1 -1 -1 1 1 1 1 -1 -1 1 1
r <- rle(x)$length p <- which(r == 3) idx <- cumsum(r)[p] - 2 sapply(idx, function(i) x[i:(i+2)])
[,1] [,2] [,3] [,4] [1,] -1 1 -1 -1 [2,] -1 1 -1 -1 [3,] -1 1 -1 -1
idx
[1] 10 35 62 73 Andy From: Mark Leeds
I'm sorry to bother this list so much
But I haven't programmed in
A while and I'm struggling.
I have a vector in R of 1's and -1's
And I want to use a streak of size Y
To predict that the same value will
Be next.
So, suppose Y = 3. Then, if there is a streak of three
ones in a row, then I will predict that the next value is
a 1. But, if there is a streak of 3 -1's in a row,
then I will predict that a -1 is next. Otherwise,
I don't predict anything.
I am really new to R and kind of struggling
And I was wondering if someone could show
how to do this ?
In other words, given a vector of -1's
And 1's, I am unable ( I've been trying
For 2 days ) to create a new vector that
Has the predictions in it at the appropriate
places ? Thanks.
**********************************************************************
This email and any files transmitted with it are
confidentia...{{dropped}}
______________________________________________ R-help at stat.math.ethz.ch mailing list https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide! http://www.R-project.org/posting-guide.html