df = data.frame(Activity = c("a", "b"), Time.start = c("08:45:00", "09:30:00"),
Time.end = c("11:45:00", "10:30:00"), stringsAsFactors = FALSE)
df$Time.start = strptime(df$Time.start, format = "%H:%M:%S", tz = "UTC")
df$Time.end = strptime(df$Time.end, format = "%H:%M:%S", tz = "UTC")
df$Diff = df$Time.end - df$Time.start
df
Или, если вы предпочитаете более компактное dplyr
решение
df = data.frame(Activity = c("a", "b"), Time.start = c("08:45:00", "09:30:00"),
Time.end = c("11:45:00", "10:30:00"), stringsAsFactors = FALSE)
library(dplyr)
df = df %>%
mutate(Time.start = as.POSIXct(Time.start, format = "%H:%M:%S")) %>%
mutate(Time.end = as.POSIXct(Time.end, format = "%H:%M:%S")) %>%
mutate(Diff = Time.end - Time.start)
df
> df
Activity Time.start Time.end Diff
1 a 2020-04-03 08:45:00 2020-04-03 11:45:00 3 hours
2 b 2020-04-03 09:30:00 2020-04-03 10:30:00 1 hours