如何将KDB+中多值字典转换为含指定列的表格?
KDB+ 字典转多列表格的解决方案
方法1:直接修改查询语句,一步生成表格
你不需要先得到字典再转换,在原查询后加上0!即可直接输出表格格式:
0! select minDate: min date, maxDate: max date by tickType from table
0!操作符会将分组得到的字典(值为记录类型)直接转换为包含tickType、minDate、maxDate列的表格。
方法2:将已有的字典转换为表格
如果已经得到了目标字典(假设名为d),可以用以下两种方式转换:
- 方式A:利用记录展开特性
([] tickType: key d; value each d)
value each d会自动将字典每个值对应的记录拆分为minDate和maxDate列,与tickType列组合成表格。
- 方式B:手动拆分值列表(适用于值为普通列表而非记录的情况)
如果你的字典值是普通二元列表(而非带字段名的记录),可以手动提取每个值的首尾元素:
([] tickType: key d; minDate: first each value d; maxDate: last each value d)
内容的提问来源于stack exchange,提问作者CleanSock
相关产品推荐
相关产品推荐

