我有一个表't'和一个字典'查找':
t:([] date:2018.01.01 + til 5; a:`a`b`c`d`e)
lookup:((2018.01.01 + til 5),'`a`b`c`d`e)!(1000*til 5)
因此查找将日期和符号列表作为键,例如:
lookup[(2018.01.03;`c)] /returns 2000j
如果我想在更新语句中使用字典,那通常有效:
update b:lookup[(2018.01.03;`c)] from t
update b:lookup[(last date;last a)] from t
但是,我无法将它用于imho最明显的用例:查找特定的行值 . 这在直觉上是最简单的,但返回错误(“ERROR:'length”):
update b:lookup[(date;a)] from t
还考虑使用索引,但这也不起作用:
update b:lookup[(date[i];a[i])] from t
已经有几次遇到问题模式,如果有一个直接的解决方案会很好 .
谢谢 .
2 回答
它认为应该是
flip
会将2列向量转换为单个列表,然后可以用于查找:Alternatively ,你可以使用一个键控表,只需
lj
表t
与lookup2
键控表:Build 在@ nyi的答案上 . 翻转的另一种方法是使用每个连接,“这会稍快一些,但在较大的数据集上可能会很明显