Skip to content

Shift values by the given number of indices

Description

Shift values by the given number of indices

Usage

<DataFrame>$shift(n = 1, ..., fill_value = NULL)

Arguments

n Number of indices to shift forward. If a negative value is passed, values are shifted in the opposite direction instead.
These dots are for future extensions and must be empty.
fill_value Fill the resulting null values with this value. Accepts expression input. Non-expression inputs are parsed as literals.

Value

A polars DataFrame

Examples

library("polars")

df <- pl$DataFrame(a = 1:4, b = 5:8)

# By default, values are shifted forward by one index.
df$shift()
#> shape: (4, 2)
#> ┌──────┬──────┐
#> │ a    ┆ b    │
#> │ ---  ┆ ---  │
#> │ i32  ┆ i32  │
#> ╞══════╪══════╡
#> │ null ┆ null │
#> │ 1    ┆ 5    │
#> │ 2    ┆ 6    │
#> │ 3    ┆ 7    │
#> └──────┴──────┘
# Pass a negative value to shift in the opposite direction instead.
df$shift(-2)
#> shape: (4, 2)
#> ┌──────┬──────┐
#> │ a    ┆ b    │
#> │ ---  ┆ ---  │
#> │ i32  ┆ i32  │
#> ╞══════╪══════╡
#> │ 3    ┆ 7    │
#> │ 4    ┆ 8    │
#> │ null ┆ null │
#> │ null ┆ null │
#> └──────┴──────┘
# Specify fill_value to fill the resulting null values.
df$shift(-2, fill_value = 100)
#> shape: (4, 2)
#> ┌───────┬───────┐
#> │ a     ┆ b     │
#> │ ---   ┆ ---   │
#> │ f64   ┆ f64   │
#> ╞═══════╪═══════╡
#> │ 3.0   ┆ 7.0   │
#> │ 4.0   ┆ 8.0   │
#> │ 100.0 ┆ 100.0 │
#> │ 100.0 ┆ 100.0 │
#> └───────┴───────┘