time_seq | R Documentation |
base::seq()
Time based version of base::seq()
time_seq(
from = NULL,
to = NULL,
time_by = NULL,
length.out = NULL,
roll_month = getOption("timeplyr.roll_month", "xlast"),
roll_dst = getOption("timeplyr.roll_dst", c("NA", "xfirst"))
)
time_seq_sizes(from, to, timespan)
time_seq_v(
from,
to,
timespan,
roll_month = getOption("timeplyr.roll_month", "xlast"),
roll_dst = getOption("timeplyr.roll_dst", c("NA", "xfirst"))
)
time_seq_v2(
sizes,
from,
timespan,
roll_month = getOption("timeplyr.roll_month", "xlast"),
roll_dst = getOption("timeplyr.roll_dst", c("NA", "xfirst"))
)
from |
Start time. |
to |
End time. |
time_by |
A timespan. This argument may be renamed in the future. |
length.out |
Length of the sequence. |
roll_month |
Control how impossible dates are handled when
month or year arithmetic is involved.
Options are "preday", "boundary", "postday", "full" and "NA".
See |
roll_dst |
See |
timespan |
timespan. |
sizes |
Time sequence sizes. |
This works like seq()
,
but using timechange
for the period calculations and
base::seq.POSIXT()
for the duration calculations.
In many ways it is improved over seq
as
dates and/or datetimes can be supplied with no errors to
the start and end points.
Examples like,
time_seq(now(), length.out = 10, by = "0.5 days", seq_type = "dur")
and
time_seq(today(), length.out = 10, by = "0.5 days", seq_type = "dur")
produce more expected results compared to
seq(now(), length.out = 10, by = "0.5 days")
or
seq(today(), length.out = 10, by = "0.5 days")
.
For a vectorized implementation with multiple start/end times,
use time_seq_v()
/time_seq_v2()
time_seq_sizes()
is a convenience
function to calculate time sequence lengths, given start/end times.
time_seq
returns a time sequence.
time_seq_sizes
returns an integer vector of sequence sizes.
time_seq_v
returns time sequences.
time_seq_v2
also returns time sequences.
library(timeplyr)
library(lubridate)
# Dates
today <- today()
now <- now()
time_seq(today, today + months(1), time = "day")
time_seq(today, length.out = 10, time = "day")
time_seq(today, length.out = 10, time = "hour")
time_seq(today, today + months(1), time = timespan("days", 1)) # Alternative
time_seq(today, today + years(1), time = "week")
time_seq(today, today + years(1), time = "fortnight")
time_seq(today, today + years(1), time = "year")
time_seq(today, today + years(10), time = "year")
time_seq(today, today + years(100), time = "decade")
# Datetimes
time_seq(now, now + weeks(1), time = "12 hours")
time_seq(now, now + weeks(1), time = "day")
time_seq(now, now + years(1), time = "week")
time_seq(now, now + years(1), time = "fortnight")
time_seq(now, now + years(1), time = "year")
time_seq(now, now + years(10), time = "year")
time_seq(now, today + years(100), time = "decade")
# You can seamlessly mix dates and datetimes with no errors.
time_seq(now, today + days(3), time = "day")
time_seq(now, today + days(3), time = "hour")
time_seq(today, now + days(3), time = "day")
time_seq(today, now + days(3), time = "hour")
# Choose between durations or periods
start <- dmy(31012020)
# If time_type is left as is,
# periods are used for days, weeks, months and years.
time_seq(start, time = months(1), length.out = 12)
time_seq(start, time = dmonths(1), length.out = 12)
# Notice how strange base R version is.
seq(start, by = "month", length.out = 12)
# Roll forward or backward impossible dates
leap <- dmy(29022020) # Leap day
end <- dmy(01032021)
# 3 different options
time_seq(leap, to = end, time = "year",
roll_month = "NA")
time_seq(leap, to = end, time = "year",
roll_month = "postday")
time_seq(leap, to = end, time = "year",
roll_month = getOption("timeplyr.roll_month", "xlast"))
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.