KDB / Q如何转置表格?

时间:2014-08-27 12:14:54

标签: flip kdb

你如何得到一张桌子的转置?

说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
    ... 

我希望它像“翻转t”一样简单但是唉。

2 个答案:

答案 0 :(得分:4)

所以这是桌子(没有键入)

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

答案 1 :(得分:2)

“翻转”将完成工作,而不是在键控表上。你的餐桌是否有机会?看起来它是使用select-by语句创建的。

在这种情况下,请尝试“翻转0!表”