问题在于
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"
现在将6种格式传递给as。处理这些数据并回收x以匹配的日期。如果您只是将这6种格式粘贴为。可以看到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\U hms已经尝试解析这种格式的许多不同版本。