如何在kdb +中将表的名称作为字符串获取

时间:2017-01-22 06:26:09

标签: kdb

例如,如果表格为tbl_trade_jan17,我如何获得字符串变量"tbl_trade_jan17"?我担心我可能会遗漏一些非常明显的东西! 动机不是使用geteval或从其名称调用表 - 功能。 我们的想法是将表保存在硬盘上,文件名与表名相同。还要引用关联的表。例如trd_jan17也可能有一个quote_jan17表和一个sym_jan17表。所以,如果我能得到名称tbl_trade_jan17,我可以通过字符串操作得到关联表的名称。

3 个答案:

答案 0 :(得分:1)

编辑:上述问题已更改

如果我错了,请纠正我,但似乎您希望能够从字符串“tbl_trade_jan17”调用您的表格? 在这种情况下,get和value可以互换用于此目的。

q)tbl_trade_jan17:([]c:1 2 3;c2:1 2 3)
q)type tbl_trade_jan17 / tbl_trade_jan17 is a table (type 98h)
98h
q)/ to use the string as a variable to retrieve the table:
q)get "tbl_trade_jan17"
c c2
----
1 1
2 2
3 3
q)value "tbl_trade_jan17"
c c2
----
1 1
2 2
3 3

答案 1 :(得分:0)

使用string功能

q) string `tbl_trade_jan17
    "tbl_trade_jan17"

答案 2 :(得分:0)

  

的想法是将表保存在硬盘上,文件名与表名相同。

要获取已定义的表列表,请使用tables

e.g。

tables`. //for the root name-space

您可以使用like

进行过滤

e.g。

t:tables`.
t:t where t like "pattern_*"

然后使用save

保存
save each hsym t //careful