2012-05-10 12 views
0

このコードが警告またはエラーなしで実行されるかどうかは不明です。 UNIQUE修飾子を使用してkeyオプションを設定しました。SAS:データのステップとキー - オプション

set行はどうなりますか?

data One(keep= f1 f2); 
    attrib f2 length = $4; 
    set Two key = f3/unique; /* Unexpected behaviour? */ 
    if (f1=0) then do; 
     f2 = 'Zero'; 
     output; 
    end; 
run; 
+0

この質問であなたが何を求めているのかはっきりしていません。警告、エラー、予期しない結果が返されますか? – JustinJDavies

答えて

4

KEY =オプションは、索引付けされた参照データセットに対して使用され、その値は2番目のデータセットで検索されます。したがって、データステップには2つのセットステートメントが必要です。あなたのコードでは、 'Two'から値を検索するためのデータセットがありません。その結果、欠損値を持つすべての変数が無限ループになります。別のSETステートメントに 'Two'データセットを追加した場合は、f3変数と変換を入れずにそのコピーを返します。あなたは明らかにこれをやりたいとは思わないでしょう、私はちょうどコードを動作させるためにそれを提案しています。

索引キーマージの実行方法については、オンラインで多くの例がありますが、大規模なデータセットで少数の値を検索する場合は効率的な手法です。

1

あなたが何を求めているのかわからない。これは、データセットTWOにF3という名前の索引がある限り、構文上正しいものです。その索引は、複合索引(複数変数)またはF3という名前の変数上の単一の索引です。変数F1はデータセットTWOに含まれていますが、そうでない場合は欠落しています。

+0

類似のコードは動作しません:\ this strange:\ – gaussblurinc

関連する問題