(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剪切”会将每个项目更改为列表。所以输出将是列表列表列表,而不是整数列表。这可能会影响您的其他操作。