2015年3月27日金曜日

[kdb] List : リスト操作

リスト関連メモ

・QforMortals2/lists


・atomからlistを作成する
atomを並べるとリストになる。
要素が1つのリストを作る場合はenlist関数を使用する
q)1 2 3
1 2 3
q) enlist 1
,1

q) `A`B
`A`B
q) enlist `A
,`A
q) type enlist `A
11h

q) (),`A   / ()を組み合わせることでもリストを作成可能
,`A
q)type (),`A
11h
q)type (),`A`B   / ()の場合は、リストを引数にしても多層にならないので関数中で使う場合に便利
11h
q)type enlist `A`B
0h

q) {(),x} `A`B`C   / 関数中で引数をリストに変える
`A`B`C


・listからatomを作成する
first, last, @, max, ... などlistを引数にしてatomを返す関数を使用する。
要素が1つのリストをatomにする場合は、firstなどを使えばよい
q) first -5#til 10
5
q) first enlist 1
1


・listのlistから特定の行/列を抽出
Rと同じように、index指定で抽出可能
q) show list: flip ((til 10);(10?`A`B`C))
0 `A
1 `A
2 `C
3 `B
4 `C
5 `B
...

q)list[1]   / 1行目を抽出
1
`A
q) list[;1]   / 1列目を抽出
`A`A`C`B`C`B`C`C`B`A

q)list[1 3 5]   / 1,3,5行目を抽出
1 `A
3 `B
5 `B

0 件のコメント:

コメントを投稿