标签: kdb

如何在 kdb+ 中格式化双打

kdb q 中是否有类似 printf 的函数?我正在尝试将双字段格式化为 4 位精度。等效的 printf 格式是“%.04f”。

printing kdb

3
推荐指数
1
解决办法
1269
查看次数

如何在 KDB 中流式传输数据?

我可以访问一个实时 KDB 服务器,该服务器具有每毫秒到达的新数据表。

目前,我只是使用一种简单的方法,它基本上是这样的:

.z.ts:{
    newData: getNewData[];   / get data arriving in the last second
    data::data uj newData;
};
\t 100;
Run Code Online (Sandbox Code Playgroud)

确保我的数据(名为data)不断更新。

然而,uj它非常慢(可能是由于内存的不断重新分配)并且轮询只是很尴尬。

我听说 KDB 旨在擅长处理这种流式刻度数据,那么有更好的方法吗?也许一些不需要的基于推送的方法uj

real-time kdb q-lang

3
推荐指数
1
解决办法
3067
查看次数

将子字符串放入新列

我有一个表格,其中包含一个具有以下格式数据的列 - 让我们将列称为“标题”,将表格称为“s”

标题

ab.123
ab.321 
cde.456
cde.654
fghi.789
fghi.987
Run Code Online (Sandbox Code Playgroud)

我正在尝试获取“.”之前的字符的唯一列表。所以我最终得到了这个:

ab
cde
fghi
Run Code Online (Sandbox Code Playgroud)

我尝试将初始列选择到表格中,然后尝试进行更新以使用“ss”创建一个新列,该列是点的位置。

像这样:

t: select title from s
update thedot: (title ss `.)[0] from t
Run Code Online (Sandbox Code Playgroud)

然后我打算尝试做第三列,它是“标题”中的“N”个字符,其中 N 是存储在“thedot”列中的值。

我尝试更新时得到的只是“类型”错误。

有任何想法吗?我对 kdb 很陌生,所以毫无疑问以一种非常愚蠢的方式做一些简单的事情。

substring kdb q-lang

3
推荐指数
1
解决办法
4113
查看次数

kdb+:使用字符串作为变量名

如何使用字符串作为变量名?

我希望在运行时构造我的变量名,但是如何将其用作左参数并为其分配值?

例子:

[`$"test"] : 1              / 'assign error
Run Code Online (Sandbox Code Playgroud)

kdb

3
推荐指数
1
解决办法
1942
查看次数

KDB 从每组中选择第一行

非常愚蠢的问题......考虑下面按 sym 排序的表 t1。

t1:([]sym:(3#`A),(2#`B),(4#`C);val:10 40 12 50 58 75 22 103 108)

sym val
A   10
A   40
A   12
B   50
B   58
C   75
C   22
C   103
C   108
Run Code Online (Sandbox Code Playgroud)

我想选择与每个符号对应的第一行,如下所示:

(`sym`val)!(`A`B`C;10j, 50j, 75j)

sym val
A   10
B   50
C   75
Run Code Online (Sandbox Code Playgroud)

必须有一个单线来做到这一点。要获取每个符号的最后一行,就像select by sym from t1. 任何提示?

select kdb

3
推荐指数
2
解决办法
4095
查看次数

计算kdb表中每个变量的最小值和最大值

考虑下表:

sym A B
X   1 2
Y   4 1
X   6 9
Z   6 3
Z   3 7
Y   1 8
Run Code Online (Sandbox Code Playgroud)

我想为我的每个符号 X、Y 和 Z 找到最小 A 值和最大 B 值,并将它们显示在新表中,即

sym minA maxB
X   1    9
Y   1    8
Z   3    7
Run Code Online (Sandbox Code Playgroud)

谢谢。

kdb q-lang

3
推荐指数
1
解决办法
636
查看次数

KDB计数列的唯一组合

假设我有一张桌子

tbl:flip `id`evt!(1 1 1 2 2 2 2 2 3 3; `a`b`c`a`b`b`b`c`a`c)
Run Code Online (Sandbox Code Playgroud)

如何有效地计算evt的出现次数,但每个id只能计算一次

因此,结果应该如下(或将evt映射到唯一计数的任何其他格式)

res:flip `evt`ct !(`a`b`c; 3 2 3)
Run Code Online (Sandbox Code Playgroud)

kdb

3
推荐指数
1
解决办法
470
查看次数

替换列表中与KDB Q中的子字符串不匹配的元素

我将如何遍历KDB Q中的列表并替换不符合某些子字符串条件的元素?

逻辑示例伪代码:

list.stream()
    .forEach(x -> {
        if (x matches substring) :
            newList.add(x)
        else :
            newList.add("")
     })
Run Code Online (Sandbox Code Playgroud)

当前列表:

S: ("Lint"; "Stack"; "Linode"; "Overflow";"Linux")
Run Code Online (Sandbox Code Playgroud)

要匹配的子字符串在"Li"这里。这样,字符串“ Stack”和“ Overflow”被空字符串替换,因为它们不包含子字符串。

结果列表:

S: ("Lint"; ""; "Linode"; "";"Linux")
Run Code Online (Sandbox Code Playgroud)

kdb

3
推荐指数
2
解决办法
156
查看次数

仅选择表中的那些列在q kdb中不具有空值

我有一张桌子:

q)t:([] a:1 2 3; b:```; c:`a`b`c)
a b c
-----
1   a
2   b
3   c
Run Code Online (Sandbox Code Playgroud)

从此表中,我只想选择不具有空值的列,在这种情况下,输出中应该省略列b(类似于pandas中的dropna方法)。

expected output
a c
---
1 a
2 b
3 c
Run Code Online (Sandbox Code Playgroud)

我尝试了很多类似的事情

select from t where not null cols
Run Code Online (Sandbox Code Playgroud)

但没有用。

kdb

3
推荐指数
1
解决办法
232
查看次数

KDB+/Q:如何选择字典的所有项(键+值),其中各个值符合条件?

如何根据字典中的值过滤字典中的项目。例如,给定以下字典:

990.5| 0
900.5| 0
600.5| 300
600  | -300
Run Code Online (Sandbox Code Playgroud)

如何过滤掉其中值 = 0 的所有实例。此后的结果是:

600.5| 300
600  | -300
Run Code Online (Sandbox Code Playgroud)

谢谢

kdb

3
推荐指数
2
解决办法
323
查看次数

标签 统计

kdb ×10

q-lang ×3

printing ×1

real-time ×1

select ×1

substring ×1