I used the hms package to convert the character times to values in seconds.
library(tidyverse)
#> Warning: package 'tibble' was built under R version 4.1.2
library(hms)
df <- tribble(
~Station, ~time_in, ~time_out,
1, "08:17:00", "08:35:00",
2, "07:36:03", "08:05:45",
3, "11:05:26", "11:35:05",
4, "04:58:33", "05:27:15",
5, NA, NA,
6, NA, NA,
7, "14:18:37", "14:47:49"
)
df |> mutate(across(time_in:time_out, as_hms),
TotalTime = time_out - time_in,
TotalTime = ifelse(is.na(TotalTime),
mean(TotalTime, na.rm = TRUE),
TotalTime))
#> # A tibble: 7 x 4
#> Station time_in time_out TotalTime
#> <dbl> <time> <time> <dbl>
#> 1 1 08:17:00 08:35:00 1080
#> 2 2 07:36:03 08:05:45 1782
#> 3 3 11:05:26 11:35:05 1779
#> 4 4 04:58:33 05:27:15 1722
#> 5 5 NA NA 1623
#> 6 6 NA NA 1623
#> 7 7 14:18:37 14:47:49 1752
Created on 2022-05-19 by the reprex package (v2.0.1)