Decompose struct columns into separate columns for each of their fields
Description
The new columns will be inserted at the location of the struct column.
Usage
<LazyFrame>$unnest(...)
Arguments
…
|
\<dynamic-dots \> Name of the struct column(s) that should
be unnested.
|
Value
A polars LazyFrame
Examples
library("polars")
lf <- pl$LazyFrame(
a = 1:5,
b = c("one", "two", "three", "four", "five"),
c = 6:10
)$
select(
pl$struct("b"),
pl$struct(c("a", "c"))$alias("a_and_c")
)
lf$collect()
#> shape: (5, 2)
#> ┌───────────┬───────────┐
#> │ b ┆ a_and_c │
#> │ --- ┆ --- │
#> │ struct[1] ┆ struct[2] │
#> ╞═══════════╪═══════════╡
#> │ {"one"} ┆ {1,6} │
#> │ {"two"} ┆ {2,7} │
#> │ {"three"} ┆ {3,8} │
#> │ {"four"} ┆ {4,9} │
#> │ {"five"} ┆ {5,10} │
#> └───────────┴───────────┘
#> shape: (5, 3)
#> ┌───────────┬─────┬─────┐
#> │ b ┆ a ┆ c │
#> │ --- ┆ --- ┆ --- │
#> │ struct[1] ┆ i32 ┆ i32 │
#> ╞═══════════╪═════╪═════╡
#> │ {"one"} ┆ 1 ┆ 6 │
#> │ {"two"} ┆ 2 ┆ 7 │
#> │ {"three"} ┆ 3 ┆ 8 │
#> │ {"four"} ┆ 4 ┆ 9 │
#> │ {"five"} ┆ 5 ┆ 10 │
#> └───────────┴─────┴─────┘
#> shape: (5, 3)
#> ┌───────────┬─────┬─────┐
#> │ b ┆ a ┆ c │
#> │ --- ┆ --- ┆ --- │
#> │ struct[1] ┆ i32 ┆ i32 │
#> ╞═══════════╪═════╪═════╡
#> │ {"one"} ┆ 1 ┆ 6 │
#> │ {"two"} ┆ 2 ┆ 7 │
#> │ {"three"} ┆ 3 ┆ 8 │
#> │ {"four"} ┆ 4 ┆ 9 │
#> │ {"five"} ┆ 5 ┆ 10 │
#> └───────────┴─────┴─────┘