I\'ve created a dataframe with data :
idCol <- c(\'1\',\'1\',\'2\',\'2\')
stepCol <- c(\'step1\' , \'step2\' , \'step1\' , \'step2\')
timestampCol <- c
Please note there is inconsistencies in the sample data timestamp column for the time nomenclature
timestampCol <- c('01-01-2017:09.00', '01-01-2017:10.00', '01-01-2017:09.00', '01-01-2017:14.00')
Converting strings to time values (accounting for factors)
mydata$timestamp <- as.POSIXct(strptime(levels(mydata$timestamp)[mydata$timestamp], format="%m-%d-%Y:%H.%M"))
library(dplyr)
mydata %>%
group_by(id) %>%
mutate(diff = difftime(timestamp, lag(timestamp))) %>%
summarise(na.omit(diff))
# A tibble: 2 x 2
id `na.omit(diff)`