convert_contract: Contract lists of dates into messy dates

convert_contractR Documentation

Contract lists of dates into messy dates

Description

This function operates as the opposite of expand(). It contracts a list of dates into the abbreviated annotation of messy dates.

Usage

contract(x, collapse = TRUE)

Arguments

x

A list of dates

collapse

Do you want ranges to be collapsed? TRUE by default. If FALSE ranges are returned in compact format.

Details

The ´contract()´ function first expand() 'mdate' objects to then display their most succinct representation.

Because expand() drops the time of day from ranges (see ?expand), contracting a date-time range and then re-expanding it will not restore the original times; contract() is intended for date-level ranges, sets, and unspecified components.

Value

A mdate vector

Examples

d <- as_messydate(c("2001-01-01", "2001-01", "2001",
"2001-01-01..2001-02-02", "{2001-10-01,2001-10-04}",
"{2001-01,2001-02-02}", "28 BC", "-2000-01-01",
"{2001-01-01, 2001-01-02, 2001-01-03}"))
data.frame(d, contracted = contract(d))
# a full-month range collapses to a year-month by default...
contract(as_messydate("2012-06-01..2012-06-30"))
# ...unless collapse = FALSE keeps it as an explicit start..end range
contract(as_messydate("2012-06-01..2012-06-30"), collapse = FALSE)

messydates documentation built on July 17, 2026, 1:07 a.m.