lubridate 1.6.0
Want to share your content on R-bloggers? click here if you have a blog, or here if you don't.
I am pleased to announced lubridate 1.6.0. Lubridate is designed to make working with dates and times as pleasant as possible, and is maintained by Vitalie Spinu. You can install the latest version with:
<span class="identifier">install.packages</span><span class="paren">(</span><span class="string">"lubridate"</span><span class="paren">)</span>
This release includes a range of bug fixes and minor improvements. Some highlights from this release include:
period()
andduration()
constructors now accept character strings and allow a very flexible specification of timespans:period("3H 2M 1S") #> [1] "3H 2M 1S" duration("3 hours, 2 mins, 1 secs") #> [1] "10921s (~3.03 hours)" # Missing numerals default to 1. # Repeated units are summed period("hour minute minute") #> [1] "1H 2M 0S"
Period and duration parsing allows for arbitrary abbreviations of time units as long as the specification is unambiguous. For single letter specs,
strptime()
rules are followed, som
stands formonths
andM
forminutes
.These same rules allows you to compare strings and durations/periods:
"2mins 1 sec" > period("2mins") #> [1] TRUE
- Date time rounding (with
round_date()
,floor_date()
andceiling_date()
) now supports unit multipliers, like “3 days” or “2 months”:ceiling_date(ymd_hms("2016-09-12 17:10:00"), unit = "5 minutes") #> [1] "2016-09-12 17:10:00 UTC"
- The behavior of
ceiling_date
forDate
objects is now more intuitive. In short, dates are now interpreted as time intervals that are physically part of longer unit intervals:
|day1| ... |day31|day1| ... |day28| ... | January | February | ...
That means that rounding up
2000-01-01
by a month is done to the boundary between January and February which, i.e.2000-02-01
:ceiling_date(ymd("2000-01-01"), unit = "month") #> [1] "2000-02-01"
This behavior is controlled by the
change_on_boundary
argument. - It is now possible to compare
POSIXct
andDate
objects:ymd_hms("2000-01-01 00:00:01") > ymd("2000-01-01") #> [1] TRUE
- C-level parsing now handles English months and AM/PM indicator regardless of your locale. This means that English date-times are now always handled by lubridate C-level parsing and you don’t need to explicitly switch the locale.
- New parsing function
yq()
allows you to parse a year + quarter:yq("2016-02") #> [1] "2016-04-01"
The new
q
format is available in all lubridate parsing functions.
See the release notes for the full list of changes. A big thanks goes to everyone who contributed: @arneschillert, @cderv, @ijlyttle, @jasonelaw, @jonboiser, and @krlmlr.
R-bloggers.com offers daily e-mail updates about R news and tutorials about learning R and many other topics. Click here if you're looking to post or find an R/data-science job.
Want to share your content on R-bloggers? click here if you have a blog, or here if you don't.