time series - R - Difference between two rows depending on condition -
i have time series
ddate=seq(as.posixct("2012/1/1"), as.posixct("2012/1/10"), "day")
ddate
[1] "2012-01-01 pst" "2012-01-02 pst" "2012-01-03 pst" "2012-01-04 pst" "2012-01-05 pst" "2012-01-06 pst" "2012-01-07 pst" "2012-01-08 pst" "2012-01-09 pst" [10] "2012-01-10 pst"
values <- c(f,t,t,t,f,f,t,t,f,f) > dframe <- data.frame(time=ddate,values=values) > dframe time values 1 2012-01-01 false 2 2012-01-02 true 3 2012-01-03 true 4 2012-01-04 true 5 2012-01-05 false 6 2012-01-06 false 7 2012-01-07 true 8 2012-01-08 true 9 2012-01-09 false 10 2012-01-10 false i want know interval during values true ?
expected result starttime diff(day) 2012-01-02 3 2012-01-07 2
you can do:
with(dframe, data.frame(starttime = time[diff(c(false, values)) == 1], days = with(rle(values), lengths[values]))) the nameing little unfortunate. values in lengths[values] not values col, values element of rle object.
Comments
Post a Comment