as_datetime()错误:所有格式解析失败

时间:2019-07-13 14:01:20

标签: r date time paste

在下面的示例中,为什么as_datetime()导致不适用?

x <- dmy("1-1-2000")
y <- "14:30"
as_datetime(paste(x, y))

错误:

[NA]
Warning message:
All formats failed to parse. No formats found.

谢谢

2 个答案:

答案 0 :(得分:2)

我们可以使用format参数

library(lubridate)
as_datetime(paste(x, y), format = "%Y-%m-%d %H:%M")
#[1] "2000-01-01 14:30:00 UTC"

或者另一个选择是anytime

library(anytime)
anytime(paste(x, y))
#[1] "2000-01-01 14:30:00 EST"

原因可能是它期望时间采用%H:%M:%S格式,而'y'则不是。如果我们使用完整格式而不是%H:%M(也可以判断为%M:%S

y1 <- "14:30:00"
as_datetime(paste(x, y1))
#[1] "2000-01-01 14:30:00 UTC"

注意:这回答了OP收到警告消息的原因。

答案 1 :(得分:2)

由于您已经在使用lubridate,因此只需在之前设置dmy,即可将日期对象hm添加到时间对象(小时:分钟)。

x <- dmy("1-1-2000") 
y <- "14:30" 
z <- x + hm(y) 

请参阅:R tick data : merging date and time into a single object