1

次のように 1 つのハッシュ テーブルを宣言できます。

data DALY1;
    * set lengths ;
    length Germ $10 Category1 $50 Category2 $50 AgeGroupDALY $10 Gender $2 value 8;

    * make link to hash table ;
    if _n_=1 then do;
        declare hash h1(dataset:'modelData');
        h1.definekey ('Germ', 'Category1', 'Category2', 'AgeGroupDALY', 'Gender') ;
        h1.definedata('Value');
        h1.definedone();
        call missing(Germ, Value, Category1, Category2);
    end;
run;

しかし、次のように 2 を宣言すると:

data DALY1;
    * set lengths ;
    length Germ $10 Category1 $50 Category2 $50 AgeGroupDALY $10 Gender $2 value 8;

    * make link to hash table ;
    if _n_=1 then do;
        declare hash h1(dataset:'modelData');
        h1.definekey ('Germ', 'Category1', 'Category2', 'AgeGroupDALY', 'Gender') ;
        h1.definedata('Value');
        h1.definedone();
        call missing(Germ, Value, Category1, Category2);

        declare hash h2(dataset:'states');
        h2.definekey ('Germ') ;
        h2.definedata('stateList');
        h2.definedone();

    end;
run;

私は得る:

エラー: 行 194 列 3 のハッシュ オブジェクトのデータ シンボル stateList が宣言されていません。
エラー: DATA STEP コンポーネント オブジェクト エラー。EXECUTION フェーズ中に中止されました。

同時に 2 つのハッシュ テーブル (またはそれ以上、3 つ必要) を宣言することさえ可能かどうか疑問に思っています。
答えがまだである場合、私は何を間違っていますか?

この例はどこにも見つかりません。

ありがとう!

4

1 に答える 1