Это решение, которое учитывает также случаи, когда AM
или PM
присоединяется к части di git переменной TIME
data %>%
mutate(TIME = ifelse(!grepl(" ", TIME),
sub("(AM$)|(PM$)", " \\1\\2", sub("^0", "", sub("^00", "12", TIME))),
sub("^0", "", sub("^00", "12", TIME))))
" \\1\\2"
замена означает, что требуется либо первое, либо второе подвыражение в скобках - (AM$)
или (PM$)
- шаблона регулярного выражения.
Вывод
# TIME
# 1 12:35 AM
# 2 8:34 AM
# 3 10:10 AM
# 4 10:00 PM
# 5 9:45 PM
# 6 2:00 PM
# 7 7:47 PM
# 8 12:22 AM