Проблема заключается в guess_formats
.
Если вы запустите guess_formats(x, "Ymd HMS")
, вы получите не 3 формата, а 6 форматов.
YOmdHMS YOmdHMS YOmdHMS YmdHMS YmdHMS YmdHMS
"%Y-%Om-%d %H:%M:%S" "%Y-%Om-%d %H:%M:%S" "%Y-%Om-%d %H:%M:%S" "%Y-%m-%d %H:%M:%S" "%Y-%m-%d %H:%M:%S" "%Y-%m-%d %H:%M:%S"
Теперь вы передаете в формат as.Date 6 форматов, которые будут обрабатывать их и повторять x для соответствия. Если вы просто вставите эти 6 форматов в формат as.Date, вы сможете увидеть результат вашего вектора y.
as.Date(x, format = c("%Y-%Om-%d %H:%M:%S", "%Y-%Om-%d %H:%M:%S", "%Y-%Om-%d %H:%M:%S" , "%Y-%m-%d %H:%M:%S", "%Y-%m-%d %H:%M:%S", "%Y-%m-%d %H:%M:%S")
[1] "2014-01-18" "2015-03-01" "2014-05-05" "2015-05-05" "2014-01-18" "2015-03-01"
Очевидным решением было бы использовать y <- ymd_hms(x)
, поскольку вы все равно пытаетесь угадать этот формат, а ymd_hms уже пытается проанализировать множество различных версий этого формата.