(q/kdb+) 合并列表中的项目
(q/kdb+) Merge items in a list
我有一个项目列表,需要将它们合并到一个列中
使用列表
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 语句,但是如果您希望在 table 中将列定义为这样,请执行以下操作
a:raze list
tab:([] b:a)
你的输出应该是这样的
q)tab
b
-
1
2
3
4
5
7
0
1
3
总的来说,实现你想要做的事情的更简洁的方法是
select from ([]raze list)
为避免任何错误,您不应调用 header 'value' 列,因为这是 kdb+ 中受保护的关键字,当您尝试将其重新分配为 header 列时,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)
要将其转换为 table 列:
q) t:([]c:raze list)
ungroup
也可以工作,前提是您的 table 没有具有不同嵌套(或字符串)的多个列
q)ungroup ([]list)
list
----
1
2
3
4
5
7
0
1
3
我有一个项目列表,需要将它们合并到一个列中
使用列表
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 语句,但是如果您希望在 table 中将列定义为这样,请执行以下操作
a:raze list
tab:([] b:a)
你的输出应该是这样的
q)tab
b
-
1
2
3
4
5
7
0
1
3
总的来说,实现你想要做的事情的更简洁的方法是
select from ([]raze list)
为避免任何错误,您不应调用 header 'value' 列,因为这是 kdb+ 中受保护的关键字,当您尝试将其重新分配为 header 列时,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)
要将其转换为 table 列:
q) t:([]c:raze list)
ungroup
也可以工作,前提是您的 table 没有具有不同嵌套(或字符串)的多个列
q)ungroup ([]list)
list
----
1
2
3
4
5
7
0
1
3