我编写了一个包含q查询的函数,该查询返回一个包含三列的表--c1,c2和vals。如何创建网格(2D数组),使得c1为x轴,c2为y轴,相应单元格为值。例如,如果表中的一行是c1:A c2:B值:100,我想在x轴上显示A,在y轴上显示B,在与(A,B)对应的单元格中显示100。
感谢您的帮助。
输入:
_c1_
| _c2_
|vals
=============== -
_A_
| _B_
| 100
_A_
| _Y_
| 110
_X_
| _Y_
| 120
_X_
| _T_
| 220
输出:
_ _
| _B_
| _Y_
| _T_
|
=============== -
_A_
| 100 | 110 |000 |
_X_
| 1000 | 120 |220 |
为格式错误道歉,我不知道如何创建一个合适的表格。
答案 0 :(得分: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了解详情。