标签: q-lang

在Q shell中重复最后一条语句

Q编程语言有一个相关的shell.如何访问shell中的最后一个输入?例如,如果我输入:

q) a:45
Run Code Online (Sandbox Code Playgroud)

在下一个提示中q),我想a:45通过按向上箭头(如bash)恢复,但是,这在Q控制台中不起作用.什么工作?

kdb q-lang

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

从kdb实例检入列表

我将字符串存储在变量名res下的列表中.接下来,我构建一个查询字符串列表的查询.然而,似乎没有读取变量.

这就是我的意思:

q) hdl: (to a port)
q) res: `string1`string2`string3
**q) ans: hdl"select count i by date,sym from trade where date=xxx, sym in `res"**
Run Code Online (Sandbox Code Playgroud)

当我执行命令时,我总是得到一个空的结果集.我知道结果集不能为空.那么如何修复我的查询(以粗体显示)以返回结果?

请注意我正在unix框中的aq会话中执行任务.

kdb q-lang

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

如何终止 RDB 或 HDB 中的 KDB 查询?

我们有一个股票行情工厂,有时有人错误地在没有日期的 HDB 中运行查询,或者在没有时间的 RDB 中运行查询,或者使用一些其他处理逻辑,这可能会杀死 KDB。我们如何在不重新启动 KDB 实例的情况下找到并终止查询?

kdb q-lang

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

在q中删除/删除/删除变量

我在:创建了一个变量:

q)myvar: 1
Run Code Online (Sandbox Code Playgroud)

我该如何删除它?我试过了:

q)delete myvar from `.z
Run Code Online (Sandbox Code Playgroud)

但是命名空间`.z显然不是正确的,因为变量仍然存在:

q)myvar
1
Run Code Online (Sandbox Code Playgroud)

kdb q-lang

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

基于其他列KDB +添加列

我有一个包含多个列的表("ibmqt"),我想添加一个新列,其中包含布尔值,指示每一行是否有一列("bid")大于或等于另一列("问").

到目前为止,我最成功的尝试是:

ibmqt: update (pricecross:select bid>=ask from ibmqt) from ibmqt
Run Code Online (Sandbox Code Playgroud)

但是,这导致以下结果:

time         sym bid   ask   bsize asize pricecross
----------------------------------------------------
00:00:59.063 IBM 43.53 43.57 10000 9000  (,`ask)!,0b
00:01:03.070 IBM 43.54 43.59 6500  3000  (,`ask)!,0b
00:02:31.911 IBM 43.56 43.6  500   4500  (,`ask)!,0b
00:03:43.070 IBM 43.56 43.56 10000 2500  (,`ask)!,1b
00:06:01.170 IBM 43.54 43.56 8500  4500  (,`ask)!,0b
00:06:11.081 IBM 43.56 43.58 500   1500  (,`ask)!,0b
00:08:15.126 IBM 43.55 43.57 1500  9000  (,`ask)!,0b
Run Code Online (Sandbox Code Playgroud)

显然,在"pricecross"栏中,我只想要0,0,0,1,0等.

有什么建议?

kdb q-lang

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

更新字典中q lang(kdb +)的值

如何使用功能方式更新q词典中的值?

例:

x: `1`2`3;
d: x!x;
show[d];
// d -> 
// 1 | 1
// 2 | 2
// 3 | 3
// TODO change d: 
show[d];
// d -> 
// 1 | 11
// 2 | 22
// 3 | 3
Run Code Online (Sandbox Code Playgroud)

kdb q-lang

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

如何将每个表导出到kdb +数据库中的csv?

假设我的kdb +数据库有几个表.如何将所有表导出到csv文件,其中每个csv的名称与表名相同?

kdb q-lang

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

帕斯卡的三角形为k/q

斐波那契很好:

  f:|+\
5 f\1 1
Run Code Online (Sandbox Code Playgroud)

但我没有找到帕斯卡三角形的类似表达.这是我能得到的最好的:

q){x+\\x#1}6
1 1 1  1  1   1  
1 2 3  4  5   6  
1 3 6  10 15  21 
1 4 10 20 35  56 
1 5 15 35 70  126
1 6 21 56 126 252
1 7 28 84 210 462
Run Code Online (Sandbox Code Playgroud)

k kdb q-lang

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

q - 使用 try catch 加载脚本

我有一个 aq 脚本C:\some\path\startup.q,可以将其他几个 q 脚本加载到当前会话中,如下所示

\l C:\some\other\path\script1.q
\l C:\some\other\path\script2.q
\l C:\some\other\path\script3.q
Run Code Online (Sandbox Code Playgroud)

现在,我可能想检查多个路径等script1.q。例如,当我处于部署环境而不是本地环境中时,这些路径是不同的。所以我想尝试捕获负载操作符

@[\l;C:\some\other\path\script1.q;`errormessage]
Run Code Online (Sandbox Code Playgroud)

这当然是无稽之谈。但我在 q 中找到了此处system描述的命令。例如

\w / lists memory usage
system "w" / same command
Run Code Online (Sandbox Code Playgroud)

但是,这不适用于\l

system "l C:\some\path\startup.q"
Run Code Online (Sandbox Code Playgroud)

谢谢您的帮助

kdb q-lang

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

[KDB + / Q]:在数据上依次应用功能列表(管道)

在kdb + / q中,如何通过一系列功能通​​过管道传递数据,以使上一步的输出成为下一步的输入?

例如:

q)t:([]sym:`a`c`b;val:1 3 2)
q)`sym xkey `sym xasc t                / how to achieve the same result as this?
Run Code Online (Sandbox Code Playgroud)

我猜想有些变化over/可以工作:

   ?? over (xasc;xkey)
Run Code Online (Sandbox Code Playgroud)

优点:如何实现t从右侧插入的方式(本着q语法左右读法的精神)?

(xasc;xkey) ?? t
Run Code Online (Sandbox Code Playgroud)

currying kdb q-lang

2
推荐指数
1
解决办法
510
查看次数

标签 统计

kdb ×10

q-lang ×10

currying ×1

k ×1