Skip to contents

Transforms list columns to separate columns, possibly by reference. The original columns are removed from the returned table. All non-atomic objects in the list columns are expand to new list column.

Usage

unnest(x, cols, prefix = NULL)

Arguments

x

(data.table::data.table())
data.table::data.table() with columns to unnest.

cols

(character())
Column names of list columns to operate on.

prefix

(logical(1) | character(1))
String to prefix the new column names with. Use "{col}" (without the quotes) as placeholder for the original column name.

Examples

x = data.table::data.table(
  id = 1:2,
  value = list(list(a = 1, b = 2), list(a = 2, b = 2))
)
print(x)
#>       id     value
#>    <int>    <list>
#> 1:     1 <list[2]>
#> 2:     2 <list[2]>
unnest(data.table::copy(x), "value")
#>       id     a     b
#>    <int> <num> <num>
#> 1:     1     1     2
#> 2:     2     2     2
unnest(data.table::copy(x), "value", prefix = "{col}.")
#>       id value.a value.b
#>    <int>   <num>   <num>
#> 1:     1       1       2
#> 2:     2       2       2