2014-03-12 48 views
1

我寫了一個函數,它包裝了一個q查詢,該查詢返回一個包含三列的表格 - c1,c2和vals。我如何創建一個網格(二維數組),使得我有c1作爲x軸,c2作爲y軸和相應單元格中的值。例如,如果表格中的某一行是c1:A c2:B值:100,我想在(A,B)對應的單元格中顯示A在x軸上,B在y軸上並且100顯示在單元格中。q查詢:從表中創建網格

我感謝您的幫助。

輸入:
_c1_ | _c2_ |vals
=============== -
_A_ | _B_ | 100
_A_ | _Y_ | 110
_X_ | _Y_ | 120
_X_ | _T_ | 220

輸出:
_ _ | _B_ | _Y_ | _T_ |
=============== -
_A_ |100| 110|000|
_X_ |000| 120|220|

對格式不好的道歉,我不知道如何創建一個適當的表格。

回答

3

你可以試着轉動你的結果表:

q)tt:flip`c1`c2`vals!(`a`a`x`x;`b`y`y`t;100 200 300 400) 
q)tt 
c1 c2 vals 
---------- 
a b 100 
a y 200 
x y 300 
x t 400 
q)0^exec (distinct tt`c2)#c2!vals by c1:c1 from tt 
c1| b y t 
--| ----------- 
a | 100 200 0 
x | 0 300 400 

你可以看一下Pivot Table以獲取更多信息。