Split the string by a substring, restricted to returning at most n
items
Description
If the number of possible splits is less than n-1
, the
remaining field elements will be null. If the number of possible splits
is n-1
or greater, the last (nth) substring will contain
the remainder of the string.
Usage
<Expr>$str$splitn(by, n)
Arguments
by
|
Substring to split by. |
n
|
Number of splits to make. |
Value
Struct where each of n
fields is of String type
Examples
library("polars")
df = pl$DataFrame(s = c("a_1", NA, "c", "d_4_e"))
df$with_columns(
s1 = pl$col("s")$str$splitn(by = "_", 1),
s2 = pl$col("s")$str$splitn(by = "_", 2),
s3 = pl$col("s")$str$splitn(by = "_", 3)
)
#> shape: (4, 4)
#> ┌───────┬───────────┬─────────────┬──────────────────┐
#> │ s ┆ s1 ┆ s2 ┆ s3 │
#> │ --- ┆ --- ┆ --- ┆ --- │
#> │ str ┆ struct[1] ┆ struct[2] ┆ struct[3] │
#> ╞═══════╪═══════════╪═════════════╪══════════════════╡
#> │ a_1 ┆ {"a_1"} ┆ {"a","1"} ┆ {"a","1",null} │
#> │ null ┆ {null} ┆ {null,null} ┆ {null,null,null} │
#> │ c ┆ {"c"} ┆ {"c",null} ┆ {"c",null,null} │
#> │ d_4_e ┆ {"d_4_e"} ┆ {"d","4_e"} ┆ {"d","4","e"} │
#> └───────┴───────────┴─────────────┴──────────────────┘