Learn R Programming

clock (version 0.7.1)

year-quarter-day-setters: Setters: year-quarter-day

Description

These are year-quarter-day methods for the setter generics.

  • set_year() sets the fiscal year.

  • set_quarter() sets the fiscal quarter of the year. Valid values are in the range of [1, 4].

  • set_day() sets the day of the fiscal quarter. Valid values are in the range of [1, 92].

  • There are sub-daily setters for setting more precise components.

Usage

# S3 method for clock_year_quarter_day
set_year(x, value, ...)

# S3 method for clock_year_quarter_day set_quarter(x, value, ...)

# S3 method for clock_year_quarter_day set_day(x, value, ...)

# S3 method for clock_year_quarter_day set_hour(x, value, ...)

# S3 method for clock_year_quarter_day set_minute(x, value, ...)

# S3 method for clock_year_quarter_day set_second(x, value, ...)

# S3 method for clock_year_quarter_day set_millisecond(x, value, ...)

# S3 method for clock_year_quarter_day set_microsecond(x, value, ...)

# S3 method for clock_year_quarter_day set_nanosecond(x, value, ...)

Value

x with the component set.

Arguments

x

[clock_year_quarter_day]

A year-quarter-day vector.

value

[integer / "last"]

The value to set the component to.

For set_day(), this can also be "last" to adjust to the last day of the current fiscal quarter.

...

These dots are for future extensions and must be empty.

Examples

Run this code
library(magrittr)

# Quarter precision vector
x <- year_quarter_day(2019, 1:4)
x

# Promote to day precision by setting the day
x <- set_day(x, 1)
x

# Or set to the last day of the quarter
x <- set_day(x, "last")
x

# What year-month-day is this?
as_year_month_day(x)

# Set to an invalid day of the quarter
# (not all quarters have 92 days)
invalid <- set_day(x, 92)
invalid

# Here are the invalid ones
invalid[invalid_detect(invalid)]

# Resolve the invalid dates by choosing the previous/next valid moment
invalid_resolve(invalid, invalid = "previous")
invalid_resolve(invalid, invalid = "next")

# Or resolve by "overflowing" by the number of days that you have
# gone past the last valid day
invalid_resolve(invalid, invalid = "overflow")

# This is similar to
days <- get_day(invalid) - 1L
invalid %>%
  set_day(1) %>%
  as_naive_time() %>%
  add_days(days) %>%
  as_year_quarter_day()

Run the code above in your browser using DataLab