小编Tho*_*yth的帖子

[kdb +/q]:将邻接矩阵转换为邻接列表

给定(矩形)邻接矩阵m,如何在q语言中构造邻接表?

QIdioms wiki中,我找到了k一种语言解决方案,当通过qconsole with k)command 运行时会给出'vs错误:

m:(1 0 1;1 0 1)
k) (^m)_vs &,/m
'vs
Run Code Online (Sandbox Code Playgroud)

结果应该是:

0 0 1 1
0 2 0 2
Run Code Online (Sandbox Code Playgroud)

这是我能够复制的q:

k) &,/m
0 2 3 5
q) where raze m
0 2 3 5
Run Code Online (Sandbox Code Playgroud)

k^又名shape动词用的是失踪q,所以我只是做:

k) (^m)
000b
000b
q) 2 3#0b
000b
000b
Run Code Online (Sandbox Code Playgroud)

现在,因为:

q) parse "vs"
k) {x\:y}
Run Code Online (Sandbox Code Playgroud)

我试过两次都失败了:

q) (2 …
Run Code Online (Sandbox Code Playgroud)

k kdb q-lang

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

q翻译不回忆Ubuntu 16.04上的历史

昨晚我在我的系统上安装了q和kdb 32位.我一直在工作中使用它,每当我在工作时按下向上箭头键它就会回忆起上一个命令.这似乎不适用于我的家庭安装.当我点击它时它打印^ [[A. 我怎样才能解决这个问题?

在此输入图像描述

ubuntu kdb q-lang

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

创建一个布尔列,显示kdb +中其他2列之间的比较

我正在学习kdb +/q.我有一张数据表.我想获取2列数据(只是数字),比较它们并创建一个新的布尔列,该列将显示第1列中的值是否大于或等于第2列中的值.

我很乐意使用update命令创建一个新列,但我不知道如何确保它是布尔值,如何比较值以及显示"大于或等于"的方法" - 有可能为此做一个简单的Y/N输出吗?

谢谢.

kdb q-lang

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

如何在kdb中的一个字段中查询多个符号?

如果我只在过滤器中放入一个符号,如何选择特定记录?

Eg:
tab:([]a:1 2 3;b:(`abc`bde;`efg`rte;`dqw`gds))
1   (`abc`bde)
2   (`efg`rte)
3   (`dqw`gds)
Run Code Online (Sandbox Code Playgroud)

我想过滤,abc所以只返回:

1   (`abc`bde)
Run Code Online (Sandbox Code Playgroud)

select from tab where b=`abc 不管用.

kdb

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

删除字符串KDB的一部分

我有一个名为"t"的表,列为"x".它看起来如下:

x
------
1.Fred
2.Joe
3.Hank
.
.
.
500.Mary
Run Code Online (Sandbox Code Playgroud)

我需要取列并删除名称前的所有内容,例如"1".弗雷德之前

我已经尝试过更新,$2_'string x from t但这只适用于数字1-9而不是一次我得到更大的数字.有没有办法删除"." 以及之前的一切?

kdb q-lang

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

如何获得KDB/Q的第一天?

我正在寻找有效的功能来获得Q的第一天.喜欢2017.05.10 -> 2017.01.01或者2016.08.19 -> 2016.01.01.

下一个片段有效,但效率不高

{"D"$(string `year$x),".01.01"} .z.d
Run Code Online (Sandbox Code Playgroud)

kdb q-lang

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

KDB字符串连接与动态查询的符号列表

在此链接中,有一个关于如何包含动态参数的示例.d,在KDB选择查询中:

h: hopen`:myhost01:8012 // open connection
d: 2016.02.15 // define date var
symList: `GBPUSD`EURUSD
h raze "select from MarketDepth where date=", string d, ", sym in `GBPUSD`EURUSD" // run query with parameter d
Run Code Online (Sandbox Code Playgroud)

d是类型date,并且易于字符串连接以生成动态查询.

如果我想symList通过转换为字符串添加为动态参数:

raze "select from MarketDepth where date=", string d, ", sym in ", string symList 
Run Code Online (Sandbox Code Playgroud)

连接的字符串变为:select from MarketDepth where date=2016.02.15, sym in GBPUSDEURUSD,换句话说,字符串连接会丢失反引号,因此查询不会运行.我怎么解决这个问题?

pS:我知道功能查询但是在失败2小时后,我已经放弃了.

select kdb q-lang

0
推荐指数
1
解决办法
4440
查看次数

无法解析:IntelliJ IDEA中的com.android.support:appcompat-v7:27.+

当我尝试在IntelliJ IDEA中构建一个adroid项目时出现此错误(错误:(26,13)无法解决:com.android.support:appcompat-v7:27 .+安装存储库并同步项目
在文件中显示)我该如何解决它: 在此输入图像描述

android intellij-idea

0
推荐指数
1
解决办法
3592
查看次数

KDB性能:快速搜索第一项

我有一个大约20K项目的排序列表v.我想在第一个v [i]> K的点处将其拆分为2个列表

N:20000;
v:asc N?100000;     / N random numbers sorted
K:200;              / threshold
v1:v[where v<=K];   / "v<=K" has O(N) complexity, "where" has O(N) too
v2:(count v1) _ v;  / list is sorted, this holds.
Run Code Online (Sandbox Code Playgroud)

问题:如何避免v <= 200,所以它不计算长度为N的整个中间布尔向量,换句话说,在第一次匹配后找不到值?我实际上需要一个索引来执行拆分.假设K靠近列表的开头.

这是与绩效相关的问题.(注意忽略在"asc"上花费的时间.)

kdb q-lang

0
推荐指数
1
解决办法
129
查看次数

KDB/Q:根据其他列的值创建一个新列

这可能是一个简单的问题,但我无法让它发挥作用。我想创建一个列varNew,等于一列的一半Price,如果只有一个列var1,并var2具有1的值,var1并且var2只需要0或1。如果两个数值var1var2是1,那么varNew = Price。所以想要的数据看起来像这样

var1    var2    Price   varNew
0       0       10      10
0       1       14      7
1       0       12      6
1       1       20      20
Run Code Online (Sandbox Code Playgroud)

我试过:

update varNew:?[((var1+var2)>0);Price%2;Price] from table

varNew:?[(var1=1 and var2=0)|(var1=0 and var2=1);Price%2;Price] from table

varNew:?[var1=1 or var2=1;Price%2;Price] from table

但它们没有按预期工作。特别是,它返回 12 而不是 6。这是怎么回事?为什么这些条件不起作用?我该怎么做?

kdb

0
推荐指数
1
解决办法
159
查看次数

重命名 kdb q 中的列

如何将列从 TotalPercent 重命名为“%”

总百分比
98
87

输出为

%
98
87

在 kdb q 中

kdb

0
推荐指数
1
解决办法
491
查看次数

'exec' 和 'select' 的区别;素数分解算法

首先,我无法理解execselectin之间的区别kdbexec参考并没有多大帮助!

其次,我正在尝试编写一个程序来解决欧拉问题 5。我通过使用modand解决了它each,但它很慢并且需要大量空间。我相信我可以通过将 20 的素数分解的值相加来做到这一点。那是对的吗?如果是这样,任何人都可以帮助我这样做吗?我写了以下内容来获得素数分解。它还不能接收列表。

f1:{(x mod y) = 0}
f2:{if[f1[a;y]&(not max f1[y;x],0);x:x,y];x}
f3:{x+:1;y:f2[y;x];if[x<a;y:.z.s[x;y]];y}
f3[1;()
Run Code Online (Sandbox Code Playgroud)

algorithm kdb

-1
推荐指数
1
解决办法
3006
查看次数

KDB 合并/连接不同的表

我如何加入两个不同的表,例如

all_order_ask:([]ask:();ask_qty:();exchange_name_ask:())
all_order_bid:([]bid:();bid_qty:();exchange_name_bid:())
Run Code Online (Sandbox Code Playgroud)

并得到 =====>

final_order:ask:();ask_qty:();exchange_name_ask:();bid:();bid_qty:();exchange_name_bid:()
Run Code Online (Sandbox Code Playgroud)

两个表的行数相同

join kdb

-1
推荐指数
1
解决办法
507
查看次数

标签 统计

kdb ×12

q-lang ×7

algorithm ×1

android ×1

intellij-idea ×1

join ×1

k ×1

select ×1

ubuntu ×1