我正在查看两个表,一个有枚举列,另一个没有。我使用 (,/) 将它们连接在一起,它不会取消枚举数据。 (uj/) 和 last (,\) 都可以。有人知道为什么会这样吗?
KDB+ 4.0 2021.04.26 Copyright (C) 1993-2021 Kx Systems
q)enum:`a`b
q)t1:([]c1:`enum$`a`b)
q)t2:([]c1:`a`b)
q)(,/) (t1;t2)
c1
--------
`enum$`a
`enum$`b
`a
`b
q)(uj/) (t1;t2)
c1
--
a
b
a
b
q)last(,\) (t1;t2)
c1
--
a
b
a
b
q)```
最佳答案
我怀疑这是因为解释器对 ,/
(以及 raze
)进行了特殊处理,而其他的则没有。
实际的追加会给你想要的结果:
q)0N!({x,y}/)(t1;t2);
+(,`c1)!,`a`b`a`b
因此,即使 {x,y}/
看起来与 ,/
相同,但由于下面的“特殊处理”,情况并非总是如此封面
关于kdb - 使用 Over 在 kdb+ 中连接枚举列和符号列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69450764/