有没有办法通过 table 中的索引 select 和 KDB 中的整数列表
Is there a way to select by index from a table with a list of integers in KDB
这是一个 table 每行都有一系列整数:
t: flip (enlist `myColumn)!enlist (1 2 3 4 5;6 7 8 9 10;11 12 13 14 15)
如何使用 select 语句访问所有行的特定索引?
这是我试过的:
select myColumn'[2] from t
我期望的结果是 table 和
myColumn
3
8
13
但是我收到语法错误。如何通过 select stmt 使用索引位置访问元素?
谢谢你
我想你想要的是
select myColumn:myColumn[;2] from t
因为列表中的位置由列的第二个索引给出。
如果结果不需要 table:
q)@[t;`myColumn]
1 2 3 4 5
6 7 8 9 10
11 12 13 14 15
q)@[t;`myColumn][2]
11 12 13 14 15
q)@[t;`myColumn][;2]
3 8 13
您可以看到,当使用 [2]
时,它采用第三个(2 的索引)值列表,而 [;2]
采用每个单独列表中的第三个值,创建第三列的值。
您需要使用 @
进行索引。每行都是一个简单的向量,所以我们可以 index-at
q)select myColumn@'2 from t
x
--
3
8
13
这是一个 table 每行都有一系列整数:
t: flip (enlist `myColumn)!enlist (1 2 3 4 5;6 7 8 9 10;11 12 13 14 15)
如何使用 select 语句访问所有行的特定索引? 这是我试过的:
select myColumn'[2] from t
我期望的结果是 table 和
myColumn
3
8
13
但是我收到语法错误。如何通过 select stmt 使用索引位置访问元素?
谢谢你
我想你想要的是
select myColumn:myColumn[;2] from t
因为列表中的位置由列的第二个索引给出。
如果结果不需要 table:
q)@[t;`myColumn]
1 2 3 4 5
6 7 8 9 10
11 12 13 14 15
q)@[t;`myColumn][2]
11 12 13 14 15
q)@[t;`myColumn][;2]
3 8 13
您可以看到,当使用 [2]
时,它采用第三个(2 的索引)值列表,而 [;2]
采用每个单独列表中的第三个值,创建第三列的值。
您需要使用 @
进行索引。每行都是一个简单的向量,所以我们可以 index-at
q)select myColumn@'2 from t
x
--
3
8
13