These functions coerce objects of mdate class to common date classes such as Date, POSIXct, and POSIXlt. Since mdate objects can hold multiple individual dates, however, an additional function must be passed as an argument so that these functions know how to coerce resolve multiple dates into a single date.

For example, one might wish to use the earliest possible date in any ranges of dates (min), the latest possible date (max), some notion of a central tendency (mean, median, or modal), or even a random selection from among the candidate dates.

These functions then, building on expand() and the resolve functions, are particularly useful in converting back out of the mdate class for use with existing methods and models, especially for checking the robustness of results.

# S3 method for mdate
as.Date(x, ..., FUN)

# S3 method for mdate
as.POSIXct(x, ..., FUN)

# S3 method for mdate
as.POSIXlt(x, ..., FUN)

Arguments

x

A mdate object

...

Arguments passed on to the S3 generics.

FUN

A function that can be used to resolve expanded messy dates into a single date. For example, min(), max(), mean(), median(), modal(), and random().

Value

A date object of Date, POSIXct, or POSIXlt class

Examples

as.Date(as_messydate("2012-01"), min)
#> [1] "2012-01-01"
as.Date(as_messydate("2012-01-01"), mean)
#> [1] "2012-01-01"
as.Date(as_messydate("2012-01"), max)
#> [1] "2012-01-31"
as.Date(as_messydate("2012-01"), median)
#> [1] "2012-01-16"
as.Date(as_messydate("2012-01"), modal)
#> [1] "2012-01-01"
as.Date(as_messydate("2012-01"), random)
#> [1] "2012-01-13"
as.Date(as_messydate("1000 BC"), max)
#> [1] "-1000-12-31"
as.Date(as_messydate("1000 BC"), mean)
#> [1] "-1000-07-02"
as.Date(as_messydate("1000 BC"), median)
#> [1] "-1000-07-02"
as.Date(as_messydate(c("-1000", "2020")), min)
#> [1] "-1000-01-01" "2020-01-01"