这是每行中都有一系列整数的表:
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
因此,我期望的是带有
的表myColumn
3
8
13
但是我收到语法错误。如何通过select stmt使用索引位置访问元素?
谢谢你
答案 0 :(得分:3)
我想你想要的是
select myColumn:myColumn[;2] from t
列表中的位置由列的第二个索引给出。
答案 1 :(得分:2)
如果不需要表作为结果的替代方法:
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]
在每个单独的列表中获取第三个值,从而创建了第三列的值。
答案 2 :(得分:1)
您需要使用@
进行索引。每行都是一个简单的向量,因此我们可以index-at
q)select myColumn@'2 from t
x
--
3
8
13