首页 > 解决方案 > 在 kdb+ 中按类型对列进行分组

问题描述

我有一个要求,我需要找到具有不同类型的列的计数,例如 Table: col: x,y,z,c 它应该返回 col: 2,因为 x 和 y 的类型相同,比如 float64。

标签: kdb

解决方案


如果您可以提供更全面的预期输出示例或迄今为止您尝试过的内容,我们将不胜感激。据我所知,您希望计算有多少列具有特定的数据类型。在这种情况下,以下示例应该会有所帮助。在这里,我有一个包含 3 种不同数据类型的示例表,其中一种用于两列。

q)n:100;table:([] a:n?.z.T; b:n?(`a`b`c); c:til n; d:n?(`a`b`c))

我们可以使用 meta 来建立每列的数据类型,其中 t 是类型。

 q)meta table
c| t f a
-| -----
a| t
b| s
c| j
d| s

现在我们可以对数据类型进行分组

q)count each group exec t from meta table
t| 1
s| 2
j| 1

这是你要找的吗?


推荐阅读