返回 kdb 中的表列表
Returning a list of tables in kdb
kdb 中有一个函数可以生成多个 table 作为结果。我的主要目的是分析使用 python.
生成的每个 table
有什么方法可以使它成为 return table 的列表或 table 的一些字典,这样我就可以将它导出到 python 或者我应该尝试别的东西?对此的任何线索表示赞赏。谢谢
不清楚你在问什么 - 你有生成多个 table 的函数吗?您想要 return 这些 table 的列表?如果是这样的话,你有类似
f:{t:([]a:x?`1;b:x?10);q:([]c:x?`2;d:x?10f)}
您想将 t 和 q 都修改为 return,您可以在函数内手动构造一个列表:
q)f:{t:([]a:x?`1;b:x?10);q:([]c:x?`2;d:x?10f);(t;q)}
q)f 3
+`a`b!(`o`p`l;5 8 5)
+`c`d!(`ig`nf`no;9.149882 9.030751 7.750292)
或者,您可以通过在每个 table 上使用 enlist
并加入这些操作的结果来 return tables:
q)f:{t:([]a:x?`1;b:x?10);q:([]c:x?`2;d:x?10f);enlist[t],enlist[q]}
q)f 3
+`a`b!(`n`a`a;6 9 0)
+`c`d!(`nn`mi`om;9.216436 1.809536 6.434637)
或者,如果您使用 each
将多个输入传递给函数 returning 单个 table,结果自然会是 table 的列表:
q)f:{t:([]a:x?`1;b:x?10)}
q)f each 3 3
+`a`b!(`l`o`d;9 5 2)
+`a`b!(`h`m`g;9 5 9)
您可以进行的另一个修改是在创建时将每个 table 加入到 table 列表中:
q)f:{tl:();
t:([]a:x?`1;b:x?10);
tl,:enlist t;
q:([]c:x?`2;d:x?10f);
tl,:enlist q;
tl}
q)f 3
+`a`b!(`a`l`i;1 9 1)
+`c`d!(`db`mi`la;2.371288 5.67081 4.269177)
分配 table 非常冗长,但您不需要直接这样做,您也可以这样做:
q)f:{tl:();
tl,:enlist ([]a:x?`1;b:x?10);
tl,:enlist ([]c:x?`2;d:x?10f);
tl}
为了获得相同的输出,将每个 table 连接到创建的列表中,因此 return 创建一个 table 的列表。
kdb 中有一个函数可以生成多个 table 作为结果。我的主要目的是分析使用 python.
生成的每个 table有什么方法可以使它成为 return table 的列表或 table 的一些字典,这样我就可以将它导出到 python 或者我应该尝试别的东西?对此的任何线索表示赞赏。谢谢
不清楚你在问什么 - 你有生成多个 table 的函数吗?您想要 return 这些 table 的列表?如果是这样的话,你有类似
f:{t:([]a:x?`1;b:x?10);q:([]c:x?`2;d:x?10f)}
您想将 t 和 q 都修改为 return,您可以在函数内手动构造一个列表:
q)f:{t:([]a:x?`1;b:x?10);q:([]c:x?`2;d:x?10f);(t;q)}
q)f 3
+`a`b!(`o`p`l;5 8 5)
+`c`d!(`ig`nf`no;9.149882 9.030751 7.750292)
或者,您可以通过在每个 table 上使用 enlist
并加入这些操作的结果来 return tables:
q)f:{t:([]a:x?`1;b:x?10);q:([]c:x?`2;d:x?10f);enlist[t],enlist[q]}
q)f 3
+`a`b!(`n`a`a;6 9 0)
+`c`d!(`nn`mi`om;9.216436 1.809536 6.434637)
或者,如果您使用 each
将多个输入传递给函数 returning 单个 table,结果自然会是 table 的列表:
q)f:{t:([]a:x?`1;b:x?10)}
q)f each 3 3
+`a`b!(`l`o`d;9 5 2)
+`a`b!(`h`m`g;9 5 9)
您可以进行的另一个修改是在创建时将每个 table 加入到 table 列表中:
q)f:{tl:();
t:([]a:x?`1;b:x?10);
tl,:enlist t;
q:([]c:x?`2;d:x?10f);
tl,:enlist q;
tl}
q)f 3
+`a`b!(`a`l`i;1 9 1)
+`c`d!(`db`mi`la;2.371288 5.67081 4.269177)
分配 table 非常冗长,但您不需要直接这样做,您也可以这样做:
q)f:{tl:();
tl,:enlist ([]a:x?`1;b:x?10);
tl,:enlist ([]c:x?`2;d:x?10f);
tl}
为了获得相同的输出,将每个 table 连接到创建的列表中,因此 return 创建一个 table 的列表。