我目前正在开发一个与kdb数据库交互的python项目 . 数据库的未来版本将有一个小的改变,因为我不能继续我的python编程,我想我自己试一试,而不是等待kdb开发人员的更新 .
我正在使用一个模拟数据库,它会随机生成符号如下: instr1
, instr2
, instr81
等 .
我环顾四周,相信符号是由行 .gen.uni:$"instr",/: string til .gen.cfg.uniSize;
生成的
我想要实现的是符号为 exchangeX.instrY
而不仅仅是 instrY
(其中X和Y只是一些生成的数字) .
对于女性,我已经将这条线改为 $"instr",/: string til 4
所以我的大脑不会受到太大伤害 .
如何实现这样的目标?我发现了 sv
函数,因此我尝试了 sv ($"exchange",/: string til 4;$"instr",/: string til 4)
的许多变体,但似乎没有任何效果 .
谢谢你的时间!
PS:由于SO的格式化,我在这里和那里删除了一些反引号
3 回答
使用roll运算符对于生成此类数据非常有用:http://code.kx.com/q/ref/random/#roll
下面的函数将生成一个随机的符号列表 .
PARAMATERS:
x - 要生成的符号数
y - 不同交易所的数量
z - 不同仪器的数量
这是你想要的?我把它分开了一点点 .
Adverbs删除一些重复 . 对于4个交易所中任何一个的10个工具中的100个示例:
为了打破这一点:
100?/:4 10
返回两个100向量,一个从0-3抽取,另一个从0-99,由/:
(each-right)副词提供 .string
将它们转换为字符串 . 我们称之为n
.每个右边的副词修改join函数,因此:
我们可以用each-both
'
修改派生函数,/:
,在第一个向量中用"exchange"
作为前缀,在第二个向量中用"inst"
作为前缀 .现在我们只需要将这对矢量转换成对矢量
并使用每个权限修改sv以加入每对: