Concat the arrays in a Series dtype List in linear time.
Description
Folds the expressions from left to right, keeping the first non-null value.
Usage
pl$concat_list(exprs)
Arguments
exprs
|
list of Into |
Value
Expr
Examples
library("polars")
# Create lagged columns and collect them into a list. This mimics a rolling window.
df = pl$DataFrame(A = c(1, 2, 9, 2, 13))
df$with_columns(lapply(
0:2,
\(i) pl$col("A")$shift(i)$alias(paste0("A_lag_", i))
))$select(
pl$concat_list(lapply(2:0, \(i) pl$col(paste0("A_lag_", i))))$alias(
"A_rolling"
)
)
#> shape: (5, 1)
#> ┌───────────────────┐
#> │ A_rolling │
#> │ --- │
#> │ list[f64] │
#> ╞═══════════════════╡
#> │ [null, null, 1.0] │
#> │ [null, 1.0, 2.0] │
#> │ [1.0, 2.0, 9.0] │
#> │ [2.0, 9.0, 2.0] │
#> │ [9.0, 2.0, 13.0] │
#> └───────────────────┘
# concat Expr a Series and an R obejct
pl$concat_list(list(
pl$lit(1:5),
as_polars_series(5:1),
rep(0L, 5)
))$alias("alice")$to_series()
#> polars Series: shape: (5,)
#> Series: 'alice' [list[i32]]
#> [
#> [1, 5, 0]
#> [2, 4, 0]
#> [3, 3, 0]
#> [4, 2, 0]
#> [5, 1, 0]
#> ]