【问题标题】:Under what circumstances would a table get converted to a dictionary?在什么情况下表格会被转换成字典?
【发布时间】:2021-12-07 09:56:12
【问题描述】:

我在做一个比较无聊的查询:

returns: select s: avg (target1 * signum p), l: avg(lR) by date from z

这会产生如下所示的内容:

date      | s             l            
----------| ---------------------------
2001.01.02| 0.02929124    -0.02979896  
2001.01.03| -0.01870611   0.04020953   
2001.01.04| -0.006486651  -0.015966    
2001.01.05| 0.002188851   -0.02215498  
2001.01.08| 0.0001548752  0.001631526  

问题是,虽然我的查询中的z 是一个表 98h,但查询结果是一个字典 99h,这导致我的代码进一步出现问题。

什么可能导致类型转换?

【问题讨论】:

    标签: kdb


    【解决方案1】:

    其基本原理是使用“按日期”过滤器添加键会创建一个键控表。键控表只是将键表映射到值表的字典。更多信息可以在这里看到: https://code.kx.com/q4m3/8_Tables/#841-keyed-table

    因为您的 avg(lR) 依赖于“按日期”过滤器,解决此问题的唯一方法是使用以下方法手动取消返回字典的键:

    returns: 0!select s: avg (target1 * signum p), l: avg(lR) by date from z
    

    这应该取消你的表的键并给你一个 98h 类型,希望能避免任何错误。

    【讨论】:

    • 谢谢@nhughes!
    猜你喜欢
    • 1970-01-01
    • 2017-12-14
    • 2010-12-28
    • 1970-01-01
    • 2022-01-20
    • 1970-01-01
    • 2015-11-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多