Hello,

Try the following, where 'dat' is your data.frame.

dat <- read.table(text="
2012-05-07     0
2012-05-08     0
2012-05-09     0
[...etc...]
2012-08-27     1
2012-08-28     1
2012-08-29     1
", stringsAsFactors = FALSE)

r <- rle(dat[[2]])
csum <- cumsum(r$lengths > 3)
spl <- sapply(split(r$values, csum), `[`, 1)
dat$New <- rep(spl, tapply(r$lengths, csum, sum))

Hope this helps,

Rui Barradas

Em 03-09-2012 19:46, Douglas Karabasz escreveu:
I have a time series data with 1's and 0's.  When the last 3 observations
are 1 I want to generate a 1 until I have three 0's in a row and then I want
it to produce all zeros again.   For example if I have 0101010101 for the
first part of the time series this would produce all zeros.  Then if the
data has 111 my function will return 1's until I have three 0's in a row and
it would keep producing zeros until I have three 1's in a row again.
I have tried many ways to do this but I have not found a way that seems
simple.  I know I just making this more complex then needed so any help
would be great.
2012-05-07     0
2012-05-08     0
2012-05-09     0
2012-05-10     0
2012-05-11     0
2012-05-14     0
2012-05-15     0
2012-05-16     0
2012-05-17     0
2012-05-18     0
2012-05-21     0
2012-05-22     0
2012-05-23     0
2012-05-24     0
2012-05-25     0
2012-05-29     0
2012-05-30     0
2012-05-31     0
2012-06-01     0
2012-06-04     0
2012-06-05     0
2012-06-06     0
2012-06-07     1
2012-06-08     0
2012-06-11     0
2012-06-12     0
2012-06-13     0
2012-06-14     1
2012-06-15     1
2012-06-18     1
2012-06-19     1
2012-06-20     1
2012-06-21     1
2012-06-22     0
2012-06-25     0
2012-06-26     0
2012-06-27     0
2012-06-28     0
2012-06-29     0
2012-07-02     1
2012-07-03     0
2012-07-05     1
2012-07-06     1
2012-07-09     0
2012-07-10     0
2012-07-11     0
2012-07-12     0
2012-07-13     0
2012-07-16     1
2012-07-17     1
2012-07-18     0
2012-07-19     0
2012-07-20     0
2012-07-23     0
2012-07-24     0
2012-07-25     0
2012-07-26     1
2012-07-27     1
2012-07-30     1
2012-07-31     1
2012-08-01     1
2012-08-02     1
2012-08-03     0
2012-08-06     1
2012-08-07     1
2012-08-08     1
2012-08-09     1
2012-08-10     1
2012-08-13     1
2012-08-14     1
2012-08-15     1
2012-08-16     1
2012-08-17     1
2012-08-20     1
2012-08-21     1
2012-08-22     1
2012-08-23     1
2012-08-24     1
2012-08-27     1
2012-08-28     1
2012-08-29     1


        [[alternative HTML version deleted]]

______________________________________________
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.

______________________________________________
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