Я думаю, вы можете искать что-то вроде этого. Результат дается в часах.
Например: 10:25:00 - 10:35:15 = - 00:10:15 = - (10/60) - (15/3600) = -0,1708333
a = data.frame(Number = c(1, 2, 3), Time = c("10:25:00", "10:35:15", "10:42:26"), stringsAsFactors = FALSE)
x = 2
timeDiff = function(x, a){
as.difftime(a[x, 2]) - as.difftime(a[x+1, 2])
}
result = sapply(2:nrow(a), timeDiff, a)
result
Обратите внимание, что невозможно вычислить такую разницу для случая Number 3
, поскольку потребуется четвертая строка, а предоставленный вами фрейм данных содержит только 3 строки.
Согласно подсказке Stack Overflow, я вижу вас новым пользователем. Таким образом, для будущих вложенных циклов for, я рекомендую вам исследовать sapply или lapply, так как это сделает ваш код более чистым и простым в обслуживании.
Если вам нужны дальнейшие разъяснения, не стесняйтесь комментировать мой ответ. : -)