Create a set of labels for a time period based on the start and duration of
the period. The format is configurable using the start and end dates and the
dfmt
and ifmt
parameters, however if the time period has names then these
are used in preference.
Usage
# S3 method for class 'time_period'
labels(
object,
...,
dfmt = "%d/%b",
ifmt = "{start} — {end}",
na.value = "Unknown"
)
Examples
eg = as.time_period(Sys.Date()+0:10*7, anchor="start")
#> No unit given. Guessing a sensible value from the dates gives: 7d 0H 0M 0S
labels(eg)
#> 06/Feb — 12/Feb
#> 13/Feb — 19/Feb
#> 20/Feb — 26/Feb
#> 27/Feb — 05/Mar
#> 06/Mar — 12/Mar
#> 13/Mar — 19/Mar
#> 20/Mar — 26/Mar
#> 27/Mar — 02/Apr
#> 03/Apr — 09/Apr
#> 10/Apr — 16/Apr
#> 17/Apr — 23/Apr
labels(eg, ifmt="{start}", dfmt="%d/%b/%y")
#> 06/Feb/25
#> 13/Feb/25
#> 20/Feb/25
#> 27/Feb/25
#> 06/Mar/25
#> 13/Mar/25
#> 20/Mar/25
#> 27/Mar/25
#> 03/Apr/25
#> 10/Apr/25
#> 17/Apr/25
labels(eg, ifmt="until {end}", dfmt="%d %b %Y")
#> until 12 Feb 2025
#> until 19 Feb 2025
#> until 26 Feb 2025
#> until 05 Mar 2025
#> until 12 Mar 2025
#> until 19 Mar 2025
#> until 26 Mar 2025
#> until 02 Apr 2025
#> until 09 Apr 2025
#> until 16 Apr 2025
#> until 23 Apr 2025
# labels retained in constructor:
eg2 = Sys.Date()+0:10*7
names(eg2) = paste0("week ",0:10)
labels(eg2)
#> [1] "week 0" "week 1" "week 2" "week 3" "week 4" "week 5" "week 6"
#> [8] "week 7" "week 8" "week 9" "week 10"
labels(as.time_period(eg2, anchor="start"))
#> [1] "week 0" "week 1" "week 2" "week 3" "week 4" "week 5" "week 6"
#> [8] "week 7" "week 8" "week 9" "week 10"