KDB:将双键表转置为矩阵

问题描述 投票:1回答:1

如何转置双键字典(x,y)

x y | z
- - | -
1 a | data
2 a | data
3 a | data
4 a | data
5 a | data 
1 b | data
2 b | data  
3 b | data 
4 b | data
5 b | data
1 c | data
2 c | data
3 c | data
4 c | data
5 c | data 

矩阵式结构

x\y   1 2 3 4 5
     ------------    
 a   |data.......
 b   |data.......
 c   |data.......

我不知道如何开始。我有两次使用翻转组的概念。有人可以帮忙吗?

kdb
1个回答
5
投票

我相信你想要一个数据透视表。 http://code.kx.com/q/cookbook/pivoting-tables/

Nick Psaris在qtips书中的github上有很好的转轴功能;

pivot:{[t]
 u:`$string asc distinct last f:flip key t;
 pf:{x#(`$string y)!z};
 p:?[t;();g!g:-1_ k;(pf;`u;last k:key f;last key flip value t)];
 p}

q)t:2!ungroup ([]x:1+til 5;y:5#enlist `a`b`c;z:`data)
q)pivot 2!`y`x`z xcols 0!t
y| 1    2    3    4    5   
-| ------------------------
a| data data data data data
b| data data data data data
c| data data data data data
© www.soinside.com 2019 - 2024. All rights reserved.