You just subtract the columns.
Here is the (reproducible, with your data !!) code given the updated question. I use data.table
which parse the data columns to POSIXct when reading, and makes lead/lag easy too
Code
library(data.table)
data <- fread(text="StartTime,EndTime
2019-05-06 08:34:15,2019-05-06 08:48:30
2019-05-06 10:07:18,2019-05-06 10:21:34
2019-05-06 15:13:10,2019-05-06 15:27:26
2019-05-06 15:35:52,2019-05-06 15:50:07
2019-05-06 16:14:18,2019-05-06 16:33:58
2019-05-06 16:58:14,2019-05-06 17:13:36
2019-05-06 20:28:50,2019-05-06 21:05:11
2019-05-06 21:55:53,2019-05-06 22:16:50
2019-05-06 22:42:21,2019-05-06 22:57:46
2019-05-06 23:26:59,2019-05-07 00:03:46
2019-05-07 00:36:43,2019-05-07 00:53:44")
data[, minElapsed := as.numeric(EndTime - StartTime)]
data[, idleMin := as.numeric(StartTime - shift(EndTime))]
data
Output
> library(data.table)
> data <- fread(text="StartTime,EndTime
+ 2019-05-06 08:34:15,2019-05-06 08:48:30
+ 2019-05-06 10:07:18,2019-05-06 10:21:34
+ 2019-05-06 15:13:10,2019-05-06 15:27:26
+ 2019-05-06 15:35:52,2019-05-06 15:50:07
+ 2019-05-06 16:14:18,2019-05-06 16:33:58
+ 2019-05-06 16:58:14,2019-05-06 17:13:36
+ 2019-05-06 20:28:50,2019-05-06 21:05:11
+ 2019-05-06 21:55:53,2019-05-06 22:16:50
+ 2019-05-06 22:42:21,2019-05-06 22:57:46
+ 2019-05-06 23:26:59,2019-05-07 00:03:46
+ 2019-05-07 00:36:43,2019-05-07 00:53:44")
>
> data[, minElapsed := as.numeric(EndTime - StartTime)]
> data[, idleMin := as.numeric(StartTime - shift(EndTime))]
> data
StartTime EndTime minElapsed idleMin
1: 2019-05-06 08:34:15 2019-05-06 08:48:30 14.2500 NA
2: 2019-05-06 10:07:18 2019-05-06 10:21:34 14.2667 78.80000
3: 2019-05-06 15:13:10 2019-05-06 15:27:26 14.2667 291.60000
4: 2019-05-06 15:35:52 2019-05-06 15:50:07 14.2500 8.43333
5: 2019-05-06 16:14:18 2019-05-06 16:33:58 19.6667 24.18333
6: 2019-05-06 16:58:14 2019-05-06 17:13:36 15.3667 24.26667
7: 2019-05-06 20:28:50 2019-05-06 21:05:11 36.3500 195.23333
8: 2019-05-06 21:55:53 2019-05-06 22:16:50 20.9500 50.70000
9: 2019-05-06 22:42:21 2019-05-06 22:57:46 15.4167 25.51667
10: 2019-05-06 23:26:59 2019-05-07 00:03:46 36.7833 29.21667
11: 2019-05-07 00:36:43 2019-05-07 00:53:44 17.0167 32.95000
>
Original Answer below
Code
data <- read.csv(text="StartTime,EndTime
2019-05-06 08:34:15,2019-05-06 08:48:30
2019-05-06 10:07:18,2019-05-06 10:21:34
2019-05-06 15:13:10,2019-05-06 15:27:26
2019-05-06 15:35:52,2019-05-06 15:50:07
2019-05-06 16:14:18,2019-05-06 16:33:58
2019-05-06 16:58:14,2019-05-06 17:13:36
2019-05-06 20:28:50,2019-05-06 21:05:11
2019-05-06 21:55:53,2019-05-06 22:16:50
2019-05-06 22:42:21,2019-05-06 22:57:46
2019-05-06 23:26:59,2019-05-07 00:03:46
2019-05-07 00:36:43,2019-05-07 00:53:44")
data$StartTime <- as.POSIXct(data$StartTime)
data$EndTime <- as.POSIXct(data$EndTime)
data$IdlingTime <- data$EndTime - data$StartTime
data$IdlingTimeMin <- as.numeric(data$EndTime - data$StartTime)
Output
> data
StartTime EndTime IdlingTime IdlingTimeMin
1 2019-05-06 08:34:15 2019-05-06 08:48:30 14.2500 mins 14.2500
2 2019-05-06 10:07:18 2019-05-06 10:21:34 14.2667 mins 14.2667
3 2019-05-06 15:13:10 2019-05-06 15:27:26 14.2667 mins 14.2667
4 2019-05-06 15:35:52 2019-05-06 15:50:07 14.2500 mins 14.2500
5 2019-05-06 16:14:18 2019-05-06 16:33:58 19.6667 mins 19.6667
6 2019-05-06 16:58:14 2019-05-06 17:13:36 15.3667 mins 15.3667
7 2019-05-06 20:28:50 2019-05-06 21:05:11 36.3500 mins 36.3500
8 2019-05-06 21:55:53 2019-05-06 22:16:50 20.9500 mins 20.9500
9 2019-05-06 22:42:21 2019-05-06 22:57:46 15.4167 mins 15.4167
10 2019-05-06 23:26:59 2019-05-07 00:03:46 36.7833 mins 36.7833
11 2019-05-07 00:36:43 2019-05-07 00:53:44 17.0167 mins 17.0167
>