本文介绍了kdb +:将空整数替换为0的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

请考虑下表:

myTable:

a     b
-------
1     
2
3     10
4     50
5     30

如何用零替换b的空白单元格?因此结果将是:

How do I replace the empty cells of b with a zero? So the result would be:

a     b
-------
1     0
2     0
3     10
4     50
5     30

现在我正在做

myTable: update b:{$[x~0Ni;0;x]}'b from myTable

但是我想知道是否有更好/更简便的解决方案.

But I am wondering whether there is a better/easier solution for doing this.

推荐答案

使用填充运算符(^)

示例表:

q) tbl:flip`a`b!(2;0N)#10?0N 0N 0N,til 3
    a b
    ---
    0 2
    1 1
    1 1
      1
    1

在所有具有0的列中填充空值:

Fill nulls in all columns with 0:

q)0^tbl
    a b
    ---
    0 2
    1 1
    1 1
    0 1
    1 0

仅在具有0的选择性列中填充空值:

Fill nulls only in selective columns with 0:

q)update 0^b from tbl
    a b
    ---
    0 2
    1 1
    1 1
      1
    1 0

这篇关于kdb +:将空整数替换为0的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

10-24 15:36