lead-lag {dplyr} | R Documentation |
Compute lagged or leading values
Description
Find the "previous" (lag()
) or "next" (lead()
) values in a vector. Useful
for comparing values behind of or ahead of the current values.
Usage
lag(x, n = 1L, default = NULL, order_by = NULL, ...)
lead(x, n = 1L, default = NULL, order_by = NULL, ...)
Arguments
x |
A vector |
n |
Positive integer of length 1, giving the number of positions to lag or lead by |
default |
The value used to pad |
order_by |
An optional secondary vector that defines the ordering to use
when applying the lag or lead to |
... |
Not used. |
Value
A vector with the same type and size as x
.
Examples
lag(1:5)
lead(1:5)
x <- 1:5
tibble(behind = lag(x), x, ahead = lead(x))
# If you want to look more rows behind or ahead, use `n`
lag(1:5, n = 1)
lag(1:5, n = 2)
lead(1:5, n = 1)
lead(1:5, n = 2)
# If you want to define a value to pad with, use `default`
lag(1:5)
lag(1:5, default = 0)
lead(1:5)
lead(1:5, default = 6)
# If the data are not already ordered, use `order_by`
scrambled <- slice_sample(
tibble(year = 2000:2005, value = (0:5) ^ 2),
prop = 1
)
wrong <- mutate(scrambled, previous_year_value = lag(value))
arrange(wrong, year)
right <- mutate(scrambled, previous_year_value = lag(value, order_by = year))
arrange(right, year)
[Package dplyr version 1.1.4 Index]