我有一个在主表上进行过滤的功能,如下所示:
condSel:{[tabl;colNames;colValues]
wc: {(in;x;enlist y)}.'flip(colNames;colValues);
res: ?[tabl;wc;0b;()];
res
我可以单独应用它来过滤主表中的两列:
res_fltr1: condSel[t;enlist `s; enlist `s1];
res_fltr2: condSel[t;enlist `name; enlist `$("P Willy";"D Reim")];
但只有当我尝试在过滤器函数中组合这两列时,我才会收到不兼容的列表错误,我非常不确定如何修复:
res_fltr: condSel[t;`s`name;`s1`$("P Willy";"D Reim")];
我在这里缺少什么?如果我在
s
和 p
列上尝试此操作,而不是为每一列传递一个符号,那么就没有问题。
res_fltr: condSel[t;`s`p;`s1`p1];
下面的虚拟表:
s p qty name
------------------
s1 p1 300 F James
s1 p2 200 P Willy
s1 p3 400 P Willy
s1 p4 200 D Reim
s4 p5 100 M Oxhart
s1 p6 100 P Willy
...
此语法不正确:
q)`s1`$("P Willy";"D Reim")
'type
[0] `s1`$("P Willy";"D Reim")
您需要使用
,
: 加入他们
q)`s1,`$("P Willy";"D Reim")
`s1`P Willy`D Reim