Hello,
I couldn't get ymd() to work with your code sample since your dates are in dmy() format (I get a [All formats failed to parse] error), but you can use an ifelse() statement to get a difference in seconds once that is resolved using as.POSIXct().
library(lubridate)
library(dplyr)
date1 <- c("01-01-2022", "02-01-2022", "01-02-2022", "02-02-2022")
date2 <- c("15-01-2022", "13-02-2022", "", "20-02-2022")
ot <- c("MI", "FA", "SOL", "LA")
df <- data.frame(date2, date1, ot)
df2 <- df %>%
mutate(
date1 = ifelse(is.na(date1) ,"",
(as.POSIXct(date1, format = "%d-%m-%y"))
),
date2 = ifelse(is.na(date2) ,"",
(as.POSIXct(date2, format = "%d-%m-%y"))
),
date3 = ifelse(date2 == "","",(date2-date1)) #This gives time difference in seconds
)