将多个向量应用于函数

时间:2018-09-16 14:29:49

标签: kdb

我有一个返回表的简单函数:

F[("A";"B");(1,-1)]

我想将此函数应用向量作为输入:

a:((`A;`B);(`B;`C);(`C;`D))
b:((1;-1);(1;-1);(1;-1))

我尝试过:

F each a,b
F each a cross b

,但这不起作用或不能合并向量,而不能将两个分量分开。另外,当我开始使用它时,如何行绑定结果表列表?我来自python背景。

1 个答案:

答案 0 :(得分:2)

您需要同时使用'

q)F:{ ([] enlist x; enlist y)}    /if F is simply creating a table 

q)F[("A";"B");(1,-1)]
x    y
---------
"AB" 1 -1

q)a:((`A;`B);(`B;`C);(`C;`D))
q)b:((1;-1);(1;-1);(1;-1))

q)F'[a;b]   /each-both
+`x`y!(,`A`B;,1 -1)
+`x`y!(,`B`C;,1 -1)
+`x`y!(,`C`D;,1 -1)

raze会将其格式化为表格(我认为行绑定意味着将表格附加在一起)

q)raze F'[a;b]
x   y
--------
A B 1 -1
B C 1 -1
C D 1 -1