(q / kdb +)使用列作为函数的输入,并将结果附加到表中

时间:2018-08-15 15:15:52

标签: kdb

我具有以下功能:

lsfit:{(enlist y) lsq x xexp/: til 1+z};
interp:{[xn;x;y]sum (1;xn)*flip lsfit[x;y;1]};    

和桌子

table:([] amount:500 730 1250;xRng:(0 1;0 1;1 2);yRng:(5 7f; 5 7f; 7 10f));table

amount  xRng    yRng
500     0 1     5 7f
730     0 1     5 7f
1250    1 2     7 10f

如何应用interp返回“结果”列并将其附加到下表中?

amount  xRng    yRng    result
500     0 1     5 7f    6
730     0 1     5 7f    6.46
1250    1 2     7 10f   7.75

我正在尝试类似

interp[first table[`amount]%1000;first table[`xRng];first table[`yRng]]

在第一行工作正常,但不确定如何扩展整个表。

1 个答案:

答案 0 :(得分:4)

您可以使用以下命令将函数应用于所有行:

update result:interp'[amount%1000;xRng;yRng] from table