Assume I have created a variable containing date and time:
a <- ymd_hms("2014-01-01 12:23:34")
How do I create another variable that only has the date? That is, what should I do to transform a
's value to be identical to b
's value where b
is
b <- ymd("2014-01-01")
Description Functions to work with date-times and time-spans: fast and user friendly parsing of date-time data, extraction and updating of components of a date-time (years, months, days, hours, minutes, and seconds), algebraic manipulation on date-time and time-span objects.
Lubridate is an R package that makes it easier to work with dates and times.
Date("01/01/2009", format = "%m/%d/%Y"); lubridate::year(x) .
You can use the as. Date( ) function to convert character data to dates. The format is as. Date(x, "format"), where x is the character data and format gives the appropriate format.
You can just use round_date
round_date(a, "day")
[1] "2014-01-02 UTC"
EDIT
You do need to be careful with rounding the time though. For complete equivalence here you would need to use floor_date
.
identical(ymd("2014-01-01"), floor_date(a, "day"))
[1] TRUE
Using date()
is much shorter and avoids any issues with rounding.
library(lubridate)
date(a)
[1] "2014-01-01"
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With