block() breaks up the
period, and then uses that to define
the indices to chop
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)
The vector to block.
The datetime index to block by.
There are 3 restrictions on the index:
A string defining the period to group by. Valid inputs can be roughly broken into:
The number of periods to group together.
For example, if the period was set to
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
x by those indices using
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)[]) == vec_ptype(x)
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.