如何从日期时间创建日期(使用 lubridate)?

How to create date from datetime (using lubridate)?

假设我创建了一个包含日期和时间的变量:

a <- ymd_hms("2014-01-01 12:23:34")

如何创建另一个只有日期的变量?也就是说,我应该如何将 a 的值转换为与 b 的值相同,其中 b

b <- ymd("2014-01-01")

你可以直接使用round_date

round_date(a, "day")
[1] "2014-01-02 UTC"

编辑

不过你确实需要小心舍入时间。为了在这里完全等效,您需要使用 floor_date.

identical(ymd("2014-01-01"), floor_date(a, "day"))
[1] TRUE

使用 date() 更短并且避免了任何舍入问题。

library(lubridate)
date(a)
[1] "2014-01-01"