Create sequence of evenly-spaced points for each row between start
and end
Description
The number of values in each sequence is determined by
num_samples
.
Usage
pl$linear_spaces(
start,
end,
num_samples,
...,
closed = c("both", "left", "none", "right"),
as_array = FALSE
)
Arguments
start
|
Lower bound of the range. |
end
|
Upper bound of the range. |
num_samples
|
Number of samples in the output sequence. |
…
|
These dots are for future extensions and must be empty. |
closed
|
Define which sides of the range are closed (inclusive). One of the
following: “both” (default), “left” ,
“right” , “none” .
|
as_array
|
Return result as a fixed-length Array .
num_samples must be a constant.
|
Details
linear_space
works with numeric and temporal dtypes. When
the start
and end
parameters are
Date
dtypes, the output sequence consists of equally-spaced
Datetime
elements with millisecond precision.
Value
A polars expression
Examples
library("polars")
df <- pl$DataFrame(start = c(1, -1), end = c(3, 2), num_samples = c(4, 5))
df$with_columns(ls = pl$linear_spaces("start", "end", "num_samples"))
#> shape: (2, 4)
#> ┌───────┬─────┬─────────────┬────────────────────────┐
#> │ start ┆ end ┆ num_samples ┆ ls │
#> │ --- ┆ --- ┆ --- ┆ --- │
#> │ f64 ┆ f64 ┆ f64 ┆ list[f64] │
#> ╞═══════╪═════╪═════════════╪════════════════════════╡
#> │ 1.0 ┆ 3.0 ┆ 4.0 ┆ [1.0, 1.666667, … 3.0] │
#> │ -1.0 ┆ 2.0 ┆ 5.0 ┆ [-1.0, -0.25, … 2.0] │
#> └───────┴─────┴─────────────┴────────────────────────┘
#> shape: (2, 4)
#> ┌───────┬─────┬─────────────┬──────────────────┐
#> │ start ┆ end ┆ num_samples ┆ ls │
#> │ --- ┆ --- ┆ --- ┆ --- │
#> │ f64 ┆ f64 ┆ f64 ┆ array[f64, 3] │
#> ╞═══════╪═════╪═════════════╪══════════════════╡
#> │ 1.0 ┆ 3.0 ┆ 4.0 ┆ [1.0, 2.0, 3.0] │
#> │ -1.0 ┆ 2.0 ┆ 5.0 ┆ [-1.0, 0.5, 2.0] │
#> └───────┴─────┴─────────────┴──────────────────┘