【问题标题】:How to join a list of tables in kdb如何加入kdb中的表列表
【发布时间】:2018-08-20 23:55:37
【问题描述】:

我正在使用以下连接多个表

() uj/(a;b;c)

但是有没有办法传递一个表列表来实现这一点?

目前,如果我执行以下操作,则会收到类型错误

tbList:tables[]
() uj/(tbList)

谢谢

【问题讨论】:

    标签: kdb


    【解决方案1】:

    uj 需要表参数,而tables[] 返回根命名空间中的变量名称,这些变量是表作为符号列表。

    要从中获取表列表,您可以使用value each tables[],它将依次评估每个变量名称并将评估的表作为列表返回。

    如果/ (over) 只提供了一个列表参数,它将把第一个元素作为初始值,因此您不需要像这样提供一个空列表作为初始值:

    uj/[value each tables[]]

    【讨论】:

      【解决方案2】:

      从技术上讲,它可以通过传递表名来实现:

      eval (uj/;enlist,`tab1`tab2`tab3)
      

      但正如其他人建议的那样,使用value 可能更传统

      【讨论】:

        【解决方案3】:
        () uj/value each tbList
        

        对符号赋值,返回它命名的变量的值。

        【讨论】:

        • 请注意,调用tables[] 直接返回一个符号列表,而通过在前面加上value each 我们返回一个表本身的列表
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2021-12-06
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-12-22
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多