2016-11-07 8 views
0

ここで内部ループ(********とマークされています)はそのままですか、%eval()のようなものを使用する必要がありますか? (マクロ変数がないので%eval()が必要ではないと思います)。SASデータステップのDOループにおける動的制御フロー

do _i = 1 to 5; 
    if sp_id_array{_i} ne . then do; 
     do _j = (_i+1) to 5; *********; 
     if sp_id_array{_j} ne . then do; 
      sp_id = sp_id_array{_i}; 
      sp_partner_id = sp_id_array{_j}; 
      output; 
     end; 
     end; 
    end;   
end; 

答えて

0

これは問題ありません。 SASは自動的に(_i+1)を使用します。実際には、ループ内のループ制御変数自体を変更することができます。

data _null_; 
    do _i = 1 to 5; 
    put _i=; 
    _i=5; 
    end; 
run;