[R] Computing Time Intervals On A Series

Gabor Grothendieck ggrothendieck at gmail.com
Fri Jul 3 15:52:19 CEST 2009


Try this:

> d <- diff(DF$time)
> d[rep(c(FALSE, TRUE), length = length(d))]
Time differences in secs
[1]  0  0  0 10  1  6 23  2  1
> d[rep(c(TRUE, FALSE), length = length(d))]
Time differences in secs
 [1] 6 1 4 6 0 2 4 8 1 0

On Fri, Jul 3, 2009 at 9:21 AM, <rory.winston at gmail.com> wrote:
> Hi
>
> I have a dataset that looks like this (dput'd below):
>
>> head(x, 20)
>
> time status
> 1 2009-07-02 10:32:37 1
> 2 2009-07-02 10:32:43 0
> 3 2009-07-02 10:32:43 1
> 4 2009-07-02 10:32:44 0
> 5 2009-07-02 10:32:44 1
> 6 2009-07-02 10:32:48 0
> 7 2009-07-02 10:32:48 1
> 8 2009-07-02 10:32:54 0
> 9 2009-07-02 10:33:04 1
> 10 2009-07-02 10:33:04 0
> 11 2009-07-02 10:33:05 1
> 12 2009-07-02 10:33:07 0
> 13 2009-07-02 10:33:13 1
> 14 2009-07-02 10:33:17 0
> 15 2009-07-02 10:33:40 1
> 16 2009-07-02 10:33:48 0
> 17 2009-07-02 10:33:50 1
> 18 2009-07-02 10:33:51 0
> 19 2009-07-02 10:33:52 1
> 20 2009-07-02 10:33:52 0
>
> I would like to be able to calculate the total time spent in state 0, in
> other words
> the diff of the times of x where x$status changes from 0 to 1. I've been
> struggling
> with tapply() to do this, but without huge success....anyone know an
> elegant way
> to do this?
>
> Cheers
> -- Rory
>
> structure(list(time = structure(c(1246527157, 1246527163, 1246527163,
> 1246527164, 1246527164, 1246527168, 1246527168, 1246527174, 1246527184,
> 1246527184, 1246527185, 1246527187, 1246527193, 1246527197, 1246527220,
> 1246527228, 1246527230, 1246527231, 1246527232, 1246527232), class =
> c("POSIXt",
> "POSIXct"), tzone = ""), status = c(1, 0, 1, 0, 1, 0, 1, 0, 1,
> 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0)), .Names = c("time", "status"
> ), row.names = c(NA, 20L), class = "data.frame")
>
>        [[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.
>




More information about the R-help mailing list