0

KDB の配列範囲内で変数を使用できないのはなぜですか?

test:1 2 3 4 5

この例はうまくいきません:

pos:3;
test[1 pos]

しかし、このように動作します

test[1 3]
4

2 に答える 2

1

ご覧のとおり、test[1 3] を使用すると、(1 3) はリストです。したがって、ベクトル変数にはリストが必要です。

   q) list1:1 3
   q) test[list1]

したがって、次を使用する必要があります。

   q)n:3
   q)list1:(1;n)
   q)test[list1]
   q)test[(1;n)]  / alternate way

セミコロンのみが機能しない理由と、角かっこ '()' が必要な理由の詳細については、この投稿に対する私の回答を確認してください。

kdb/q: リストを nRows に再形成する方法 (nRows は変数)

于 2015-02-18T09:39:17.560 に答える
1

あなたが求めていることを理解するには、次のことを考慮してください。

1 2 3 7

これは整数の単純なリストです。今考えてみましょう:

2 3

はベクトルaです。上記のインデックスはa. 簡単。2 3そのリストを変数として持ちたいとしましょう

b:2 3 ab //動作します!

具体的には、リストから範囲を取得する方法について質問しています。これは、KDB のリスト内の要素の範囲を取得する方法でカバーされていますか?

その答えでは、変数を使用してインデックス リストを作成し、結果を使用してインデックスを作成します。a

于 2015-02-18T09:45:28.953 に答える