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