2014-08-27 72 views
2

如何獲得表格的轉置?KDB/Q如何轉置表格?

說T:

x   ltCt  poPt  kgAg  xoOt  woWa yTri zapR  
    ----------------------------------------------------------------- 
    today  41.66 367.69 -662.89 11347.91 30644 -177 19149.92 
    yesterday -1570.33 77233.76 -1169.33 11267.63 17079 5623 31069.08 

,我們希望T2的樣子:

x  | today yesterday 
    ltCt | 41.66 -1570.33 
    poPt | 367.69 77233.76 
    ... 

我希望它是簡單的 「翻頁筆」 但很可惜。

回答

2

「flip」將完成這項工作,而不是在一個鍵控表上。你的桌子是否是任何機會的關鍵桌子?它看起來像是使用select-by語句創建的。

在這種情況下,嘗試 「翻轉0表!」

3

因此,這裏的表(未鍵控)

q)t 
x   ltCt poPt kgAg xoOt woWa yTri zapR 
-------------------------------------------- 
today  9 1 8 7 4 4 7 
yesterday 2 8 1 2 5 2 8 

翻轉它變成一本字典:

q)flip t 
x | today yesterday 
ltCt| 9  2 
poPt| 1  8 
kgAg| 8  1 
xoOt| 7  2 
woWa| 4  5 
yTri| 4  2 
zapR| 7  8 

你」需要一些魔力才能將它變成適當的表格:

q)flip ft[`x]!flip 1_ value ft:flip t 
today yesterday 
--------------- 
9  2 
1  8 
8  1 
7  2 
4  5 
4  2 
7  8 

編輯

全部轉

q)flip raze[(key 1#ft),value(1#ft)]!(enlist 1_key ft),flip value 1_ft:flip t 
x today yesterday 
-------------------- 
ltCt 9  2 
poPt 1  8 
kgAg 8  1 
xoOt 7  2 
woWa 4  5 
yTri 4  2 
zapR 7  8 
+0

哇,我喜歡!Q謝謝user2393012我欠你一杯啤酒 – Sputnik2513 2014-08-29 07:51:11