S3 classes and methods to create and work with year-quarter, year-month and year-isoweek vectors. Basic arithmetic operations (such as adding and subtracting) are supported, as well as formatting and converting to and from standard R date types.
A Toolkit for Year-Quarter, Year-Month and Year-Isoweek Dates
S3 classes and methods to create and work with year-quarter and year-month vectors. Basic arithmetic operations (such as adding and subtracting) are supported, as well as formatting and converting to and from standard R Date types. For more info please refer to the package vignette or the documentation
dint is implemented strictly in base R and will always stay dependency-free. The optional dependencies in Suggests are to ensure interoperability with these packages if you are already using them.
Install the release version of dint from CRAN:
install.packages("dint")
Or install the development version from GitHub with:
devtools::install_github("s-fleck/dint")
library(dint)# creationq <- date_yq(2014, 4)m <- as_date_ym(201412)w <- as_date_yw(as.Date("2017-01-01"))# printingprint(q)#> [1] "2014-Q4"print(m)#> [1] "2014-M12"print(w) # isoweeks do not follow calendar years!#> [1] "2016-W52"# arithmetic operations# quartersq#> [1] "2014-Q4"q + 1#> [1] "2015-Q1"seq(q -2, q + 2)#> [1] "2014-Q2" "2014-Q3" "2014-Q4" "2015-Q1" "2015-Q2"# monthsm#> [1] "2014-M12"m + 1#> [1] "2015-M01"seq(m -2, m + 2)#> [1] "2014-M10" "2014-M11" "2014-M12" "2015-M01" "2015-M02"# formattingformat(q)#> [1] "2014-Q4"format(q, "%Y.%q")#> [1] "2014.4"format(q, "%y.%q")#> [1] "14.4"format(m)#> [1] "2014-M12"# get start and end of periodlast_of_quarter(q)#> [1] "2014-12-31"first_of_quarter(q)#> [1] "2014-10-01"first_of_month(Sys.Date())#> [1] "2018-12-01"first_of_isoweek(w)#> [1] "2016-12-26"last_of_isoweek(w)#> [1] "2017-01-01"
is_quarter_bounds()
, is_year_bounds()
,
is_first_of_quarter()
, etc...)unique
and summary
that were introduced in the last
version but mistakenly not exporteddate_xx
of the same subclass from each other
(the result is an integer
)as_yearmon()
and as_yearqtr()
for converting to zoo S3 classesSys.date_yq()
, Sys.date_ym()
and Sys.date_yw()
to get the current
quarter, month or isoweek.date_xx
objects now uses placeholders similar to
base::strptime()
(e.g %Y
, %m
, %q
, etc...) instead of presets. The
new implementation is also noticeably faster than the old.first_day_of_*()
and format_date_y*()
functions now
have shorter names: first_of_*()
and format_y*()
. The original names
will still work until the next release but give a deprecation warning.c()
, min()
, max()
, range()
first_of_year()
and
last_of_year()
(e.g. first_of_year(2018)
)date_yw
for storing isoweeks and modified existing functions to
accommodate for them.[
method for date_xx
objects that preserves class attribute when
subsetting%y+%
/ %y-%
can add/subtract years from date_xx objectsis_first_of_quarter()
, is_last_of_quarter()
, and
is_quarter_bounds()
.seq()
methods now support a by
argument