Home > Back-end >  Obtain the difference in consecutive rows of Time data in R
Obtain the difference in consecutive rows of Time data in R

Time:08-15

I want to get the difference in consecutive rows of Time. When I used this code it works fine. But when I apply that to my original dataset 1 minute appears as 0.0006944444 (in terms of days). How can I get make it appear as 1 minute instead?

Date <- c("03/06/2019", "03/06/2019", "03/06/2019", "03/06/2019")
Time <- c("17:15:00","17:16:00", "17:18:00", "17:21:00")

df1 <- data.frame(Date, Time)
library(chron)

df1$Time <- chron(times = df1$Time)

sapply(df1, class)

df1 <- df1 %>%  mutate(diff = Time - lag(Time))

CodePudding user response:

Too long for a comment for the time being, can delete later:

When I run your code on a modified data set with a one second difference between two time points, your answer is exactly as expected. The diff column contains a one second difference.

Can you show us some code that produces the error?

Date <- c("03/06/2019", "03/06/2019", "03/06/2019", "03/06/2019")
Time <- c("17:15:01","17:15:02", "17:18:00", "17:21:00")

df1 <- data.frame(Date, Time)
library(chron)

df1$Time <- chron(times = df1$Time)

sapply(df1, class)

df1 <- df1 %>%  mutate(diff = Time - lag(Time))

#         Date     Time     diff
# 1 03/06/2019 17:15:01     <NA>
# 2 03/06/2019 17:15:02 00:00:01
# 3 03/06/2019 17:18:00 00:02:58
# 4 03/06/2019 17:21:00 00:03:00
  • Related