首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >KDB:函数优化

KDB:函数优化
EN

Stack Overflow用户
提问于 2020-01-16 16:12:31
回答 4查看 177关注 0票数 1

我有2个kdb格式的表,如下所示

代码语言:javascript
复制
q)table1:([]A:1 2 3 5 5 6 2 1;B:`HAK`ZAK`NAK`AAK`AZK`HAK`ZAK`HAK;C:2000.01.01+0 1 2 3 4 0 1 0)
q)table1
A B   C
----------------
1 HAK 2000.01.01
2 ZAK 2000.01.02
3 NAK 2000.01.03
5 AAK 2000.01.04
5 AZK 2000.01.05
6 HAK 2000.01.01
2 ZAK 2000.01.02
1 HAK 2000.01.01
q)table2:([]B:`HAK`ZAK`NAK`AAK`AZK;Z:`NAFK`RFK`NAFK`RFK`ORQ)
q)table2
B   Z
--------
HAK NAFK
ZAK RFK
NAK NAFK
AAK RFK
AZK ORQ

我想根据表2的映射修改table1列B。例如,在Table1 columnB中的任何地方都有单词"HAK",然后在table2 columnB中查找,并将table1替换为table1的所有行的相应table2列z相同。

我想要的最终输出是table1应该像下面这样更新。

代码语言:javascript
复制
A B    C
-----------------
1 NAFK 2000.01.01
2 RFK  2000.01.02
3 NAFK 2000.01.03
5 RFK  2000.01.04
5 ORQ  2000.01.05
6 NAFK 2000.01.01
2 RFK  2000.01.02
1 NAFK 2000.01.01

我想出的函数如下。

代码语言:javascript
复制
hfun:
{$[
x in `$("HAK");`$("NAFK");
x in `$("ZAK");`$("RFK");
x in `$("NAK");`$("NAFK");
x in `$("AAK");`$("RFK");
x in `$(AZK);`$("ORQ");
x]}


finalOutput:update B:hfun'[B] from table1

上面的函数按预期工作,但是不可能每次都为新映射编写新函数,或者如果table2有200行。

有没有人可以看一看,并给出进一步的建议?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2020-01-16 16:29:58

您可以使用字典更新,而不是循环w/ condition:

代码语言:javascript
复制
dict:`HAK`ZAK`NAK`AAK`AZK!`NAFK`RFK`NAFK`RFK`ORQ;
update B^dict B from table1

(with spaces)
table1:([]A:1 2 3 5 5 6 2 1;B:(`$"HAK z";`$"ZAK";`$"NAK";`$"AAK";`$"AZK";`$"HAK";`$"ZAK";`$"HAK");C:2000.01.01+0 1 2 3 4 0 1 0)
table2:([]B:(`$"HAK z";`$"ZAK";`$"NAK";`$"AAK";`$"AZK");Z:`NAFK`RFK`NAFK`RFK`ORQ)

dict:exec B!Z from table2;
update B^dict B from table1
票数 2
EN

Stack Overflow用户

发布于 2020-01-16 17:01:03

也可以使用amend来实现这一点:

代码语言:javascript
复制
@[table1;`B;(!/)table2`B`Z]
票数 4
EN

Stack Overflow用户

发布于 2020-01-16 16:58:36

代码语言:javascript
复制
update B:({x[;0]!x[;1]}flip value flip table2)'[B]from table1

这将实现预期的结果,而不需要定义额外的变量或条件语句。它也适用于符号中的空格。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59765368

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档