Date-time differences between rows in R
r
Solution
Try this (I am assuming that you have your data in a `data.frame` called `mydf`) and that you want the difference between the first time stamp and all subsequent timestamps:
c_time <- as.POSIXlt( mydf$c_time )
difftime( c_time[1] , c_time[2:length(c_time)] )
#Time differences in secs
#[1] -59.886 -120.373
#attr(,"tzone")
#[1] ""
Edit
But in case you want the delta difference between subsequent timestamps you need to reverse your obsevations (because the first way round you get time1 - time2 which will be negative), so you can just use instead:
c_time <- rev( c_time )
difftime(c_time[1:(length(c_time)-1)] , c_time[2:length(c_time)])
#Time differences in secs
#[1] 60.487 59.886
#attr(,"tzone")
#[1] ""
Problem
I would like to calculate time differences (delta time) in R. The timestamps are stored in a two-column data frame with time as date-time (year-month-day hour:min: sec.msec), e.g. for first three rows: ``` c_id c_time 6875 2012-08-15 00:00:40.169 6874 2012-08-15 00:01:40.055 6876 2012-08-15 00:02:40.542 ``` I would like to have an output a column with differences e.g. ``` c_diff 0 00:01:0.886 00:01:0.487 ``` Can someone please tell me how to do this? If you have other/better suggestion how to keep the result, it will be greatly appreciated Thanks so much in advance! Mishu