block | R Documentation |
block()
breaks up the i
-ndex by period
, and then uses that to define
the indices to chop x
with.
For example, it can split x
into monthly or yearly blocks. Combined with
purrr::map()
, it is a way to iterate over a vector in "time blocks".
block(x, i, period, every = 1L, origin = NULL)
x |
The vector to block. |
i |
The datetime index to block by. There are 3 restrictions on the index:
|
period |
A string defining the period to group by. Valid inputs can be roughly broken into:
|
every |
The number of periods to group together. For example, if the period was set to |
origin |
The reference date time value. The default when left as This is generally used to define the anchor time to count from, which is
relevant when the every value is |
block()
determines the indices to block by with warp::warp_boundary()
,
and splits x
by those indices using vctrs::vec_chop()
.
Like slide()
, block()
splits data frame x
values row wise.
A vector fulfilling the following invariants:
vec_size(block(x)) == vec_size(unique(warp::warp_boundary(i)))
vec_ptype(block(x)) == list()
vec_ptype(block(x)[[1]]) == vec_ptype(x)
slide_period()
, slide()
, slide_index()
x <- 1:6
i <- as.Date("2019-01-01") + c(-2:2, 31)
block(i, i, period = "year")
# Data frames are split row wise
df <- data.frame(x = x, i = i)
block(df, i, period = "month")
# Iterate over these blocks to apply a function over
# non-overlapping period blocks. For example, to compute a
# mean over yearly or monthly blocks.
vapply(block(x, i, "year"), mean, numeric(1))
vapply(block(x, i, "month"), mean, numeric(1))
# block by every 2 months, ensuring that we start counting
# the 1st of the 2 months from `2019-01-01`
block(i, i, period = "month", every = 2, origin = as.Date("2019-01-01"))
# Use the `origin` to instead start counting from `2018-12-01`, meaning
# that [2018-12, 2019-01] gets bucketed together.
block(i, i, period = "month", every = 2, origin = as.Date("2018-12-01"))
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.