【问题标题】:how to use ungroup with multiple composite columns in kdb如何在 kdb 中使用 ungroup 与多个复合列
【发布时间】:2016-09-04 07:19:54
【问题描述】:

考虑下表:

`Keys  `Values
`A`B   `V1`V2
`C`D`E   `V1`V2`V3`V4

我只想展平键列,以便每个键都映射到相应的值。结果应该是:

`Keys  `Values
`A     `V1`V2
`B     `V1`V2
`C     `V1`V2`V3`V4
`D     `V1`V2`V3`V4
`E     `V1`V2`V3`V4

ungroup 函数将 ungroup 应用于所有列,在这种情况下,我想单独应用于 Keys 列。

【问题讨论】:

    标签: kdb


    【解决方案1】:

    您可以通过几种不同的方式来解决这个问题,以下是一种方式 -

    ungroupCol:{[tbl;col]
        @[tbl where count each tbl col;col;:;raze tbl col]
    }
    

    然后:

    q)t:flip `Keys`Values!((`A`B;`C`D`E);(`V1`V2;`V1`V2`V3`V4))
    q)ungroupCol[t;`Keys]
        Keys Values
        -----------------
        A    `V1`V2
        B    `V1`V2
        C    `V1`V2`V3`V4
        D    `V1`V2`V3`V4
        E    `V1`V2`V3`V4
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多