R展平嵌套data.table

use*_*225 4 nested r data.table

我有嵌套数据表,将嵌套表展平为一个data.table的最佳方法是什么?请注意,嵌套表的长度可以不相等,因此tidyr :: unnest()不起作用。

代码示例:

NestedTable <- data.table(
  COLUMN1 = c('var1', 'var2','var3'),
  COLUMN2 = c('col2a', 'col2b', 'col2c')
)

# add nested data.tables
NestedTable[ , NESTED_COL := list(list(data.table(
  COLUMN4 = c(
    'A', 'B'
  ), 
  COLUMN5 = c(
    'C', 'D'
  )
)))]

NestedTable[ , NESTED_COL2 := list(list(data.table(
  COLUMN6 = c(
    'A', 'B','C'
  ), 
  COLUMN7 = c(
    'C', 'D','E'
  )
)))]

#      COLUMN1 COLUMN2 COLUMN4 COLUMN5 COLUMN6 COLUMN7
# 1:    var1   col2a   A       C       A       C
# 2:    var1   col2a   B       D       B       D
# 3:    var1   col2a                   C       E
# 4:    var2   col2b   A       C       A       C
# 5:    var2   col2b   B       D       B       D
# 6:    var2   col2b                   C       E
# 7:    var3   col2c   A       C       A       C
# 8:    var3   col2c   B       D       B       D
# 9:    var3   col2c                   C       E
Run Code Online (Sandbox Code Playgroud)

akr*_*run 5

我们可以尝试 unlist

NestedTable[, unlist(NESTED_COL, recursive=FALSE), .(COLUMN1, COLUMN2)]
Run Code Online (Sandbox Code Playgroud)

  • 如何保留 NESTED_COL2? (2认同)