如何转置Kdb+表格并将其保存为表格形式?
解决方案
首先看原始表格定义:
t:([]enlist val10s:4.44;enlist val20s:4.18;enlist val30s:3.51;enlist val40s:3.29;enlist val50s:5.87;enlist val60s:7.36);
你提到的flip t确实会返回字典类型(9h),要得到目标表格结构,可以通过以下步骤实现:
完整实现代码
// 转置原始表格得到字典 d:flip t; // 生成目标表格 result:([] secs: j$ssr[keys d; "val|s"; ""]; value: raze d)
代码解释
keys d:获取字典的键,即原始表格的列名val10s、val20s...ssr[keys d; "val|s"; ""]:通过字符串替换去掉列名中的val和s,得到纯数字字符串"10"、"20"...j$:将数字字符串转换为整数类型(j型),对应目标表格的secs列raze d:将字典中每个单元素列表的值展开为浮点数列表,对应目标表格的value列
执行结果验证
运行代码后,result即为目标表格:
q)result secs value ---------- 10 4.44 20 4.18 30 3.51 40 3.29 50 5.87 60 7.36
确认表格类型:
q)type result 98h // 98h代表kdb+表格类型 q)meta result c | t f a -----| ----- secs | j value| f
内容的提问来源于stack exchange,提问作者vicefreak04
相关产品推荐
相关产品推荐

