KDB用int或float替换所有列中的null整数

时间:2017-09-29 07:06:37

标签: kdb

扩展此问题,

kdb+: replace null integer with 0

我有一个包含不同数据类型的大表,如float,int,timestamps,我该如何扩展呢

0^tbl

仅适用于某种类型的columsn。目前,如果我将它应用于完整的表格,我会收到类型错误,并且必须采用比手动逐列更智能的方式

1 个答案:

答案 0 :(得分:3)

您可以使用基于每列类型的功能应用来执行此操作,如下所示:

q)t:([] a:9?`3;b:9#0N;c:9#0Nf;d:9#0Ni)
q)@[t;where (type each flip t) within 5 9h;0^]
a   b c d
---------
kdj 0 0 0
eeg 0 0 0
nce 0 0 0
jog 0 0 0
..

这适用于将0 ^仅应用于类型介于5和9之间的列(即short,int,long,real和float)

希望这有帮助

乔纳森