我是kdb / q的新手,我不熟悉kdb \ q函数,希望有人可以帮助我 . 这是一个问题:我有一个简单的q函数声明如下:
func:{[x;y] x+y}
{[x;y] x+y}[3;4]
给了我答案 7
. 一切都很完美 .
如果我有一个包含两列的表 t
,例如:
_x _y
--------
3 4
2 5
6 2
...
我可以在q中有一个函数,以便为表 t
的每一行计算 x+y
吗?我的预期回报将是这样的:
res
---
7
7
8
...
非常感谢!
2 回答
由于
+
被重载以使用原子和列表,res:func[x;y]
将完美地工作;但是,如果二元函数只接受参数作为原子而不是列表,那么each-both
将会起作用:例如,从列
s
中选择与c
一样多的字符您只需将列名称作为参数传递给函数:
或者,您可以使用函数形式将该查询转换为函数: