Run any polars expression on the list values
Description
Run any polars expression on the list values
Usage
<Expr>$list$eval(expr, parallel = FALSE)
Arguments
expr
|
Expression to run. Note that you can select an element with
pl$element() , pl$first() , and more. See
Examples.
|
parallel
|
Run all expression parallel. Don’t activate this blindly. Parallelism is
worth it if there is enough work to do per thread. This likely should
not be used in the $group_by()
context, because we already do parallel execution per group.
|
Value
Expr
Examples
library("polars")
df = pl$DataFrame(
a = list(c(1, 8, 3), c(3, 2), c(NA, NA, 1)),
b = list(c("R", "is", "amazing"), c("foo", "bar"), "text")
)
df
#> shape: (3, 2)
#> ┌───────────────────┬────────────────────────┐
#> │ a ┆ b │
#> │ --- ┆ --- │
#> │ list[f64] ┆ list[str] │
#> ╞═══════════════════╪════════════════════════╡
#> │ [1.0, 8.0, 3.0] ┆ ["R", "is", "amazing"] │
#> │ [3.0, 2.0] ┆ ["foo", "bar"] │
#> │ [null, null, 1.0] ┆ ["text"] │
#> └───────────────────┴────────────────────────┘
# standardize each value inside a list, using only the values in this list
df$select(
a_stand = pl$col("a")$list$eval(
(pl$element() - pl$element()$mean()) / pl$element()$std()
)
)
#> shape: (3, 1)
#> ┌──────────────────────────────┐
#> │ a_stand │
#> │ --- │
#> │ list[f64] │
#> ╞══════════════════════════════╡
#> │ [-0.83205, 1.1094, -0.27735] │
#> │ [0.707107, -0.707107] │
#> │ [null, null, null] │
#> └──────────────────────────────┘
# count characters for each element in list. Since column "b" is list[str],
# we can apply all `$str` functions on elements in the list:
df$select(
b_len_chars = pl$col("b")$list$eval(
pl$element()$str$len_chars()
)
)
#> shape: (3, 1)
#> ┌─────────────┐
#> │ b_len_chars │
#> │ --- │
#> │ list[u32] │
#> ╞═════════════╡
#> │ [1, 2, 7] │
#> │ [3, 3] │
#> │ [4] │
#> └─────────────┘
# concat strings in each list
df$select(
pl$col("b")$list$eval(pl$element()$str$join(" "))$list$first()
)
#> shape: (3, 1)
#> ┌──────────────┐
#> │ b │
#> │ --- │
#> │ str │
#> ╞══════════════╡
#> │ R is amazing │
#> │ foo bar │
#> │ text │
#> └──────────────┘