(q/kdb+)在列表中合并项目

(q/kdb+)在列表中合并项目,kdb,Kdb,我有一个项目列表,需要将它们合并到一个列中 使用列表 list:(1 2;3 4 5 7;0 1 3) index value 0 1 2 1 3 4 5 7 2 0 1 3 我的目标是 select from list2 value 1 2 3 4 5 7 0 1 3 如果你只是想让你的列表看起来像那样,我会做以下事情 1 cut raze list 我看到您使用了select语句,但是如果希望在表中将列定义为这样,请执行以下操作 a:raz

我有一个项目列表,需要将它们合并到一个列中

使用列表

list:(1 2;3 4 5 7;0 1 3)

index   value
0       1 2
1       3 4 5 7
2       0 1 3
我的目标是

select from list2

value
1
2
3
4
5
7
0
1
3

如果你只是想让你的列表看起来像那样,我会做以下事情

1 cut raze list 
我看到您使用了select语句,但是如果希望在表中将列定义为这样,请执行以下操作

a:raze list
tab:([] b:a)
您的输出应该如下所示

q)tab
b
-
1
2
3
4
5
7
0
1
3
总的来说,实现您想要做的事情的更简洁的方法是

select from ([]raze list)   
为避免任何错误,您不应调用列标题“value”,因为这是kdb+中受保护的关键字,并且当您尝试将其重新指定为列标题时,kdb将通过一个分配错误进行处理

`assign 

希望这对您有所帮助

如果您只是想让您的列表显示为那样,我将执行以下操作

1 cut raze list 
我看到您使用了select语句,但是如果希望在表中将列定义为这样,请执行以下操作

a:raze list
tab:([] b:a)
您的输出应该如下所示

q)tab
b
-
1
2
3
4
5
7
0
1
3
总的来说,实现您想要做的事情的更简洁的方法是

select from ([]raze list)   
为避免任何错误,您不应调用列标题“value”,因为这是kdb+中受保护的关键字,并且当您尝试将其重新指定为列标题时,kdb将通过一个分配错误进行处理

`assign 

希望这有助于“raze”函数将列表中的1个级别变平

   q) raze (1 2;3 4 5 7;0 1 3)
   q) 1 2 3 4 5 7 0 1 3
如果您的列表具有多级索引,请将“over”副词与raze连用:

   q)  (raze/)(1 2 3;(11 12;33 44);5 6)
要将其转换为表列,请执行以下操作:

   q) t:([]c:raze list)

“raze”函数将列表的1个级别变平

   q) raze (1 2;3 4 5 7;0 1 3)
   q) 1 2 3 4 5 7 0 1 3
如果您的列表具有多级索引,请将“over”副词与raze连用:

   q)  (raze/)(1 2 3;(11 12;33 44);5 6)
要将其转换为表列,请执行以下操作:

   q) t:([]c:raze list)
如果表中没有多个具有不同嵌套或字符串的列,则解组也可以工作

q)ungroup ([]list)
list
----
1
2
3
4
5
7
0
1
3
如果表中没有多个具有不同嵌套或字符串的列,则解组也可以工作

q)ungroup ([]list)
list
----
1
2
3
4
5
7
0
1
3

请注意,“1次剪切”会将每个项目更改为列表。所以输出将是列表列表列表,而不是整数列表。这可能会影响您的其他操作。请注意,“1剪切”会将每个项目更改为列表。所以输出将是列表列表列表,而不是整数列表。这可能会影响您的其他操作。