DOWNLOADプロシジャで転送するオブザベーション数の上限を設定
[OS]ALL
[リリース] 6.07, 6.08, 6.09, 6.10
[キーワード] connect, download, observation, obs=, data, step, macro
[質問]
オブザベーション数が大きいSASデータセットをダウンロードすると時間がかかります。
[回答]
DOWNLOADプロシジャで、OBS= データセットオプションを使う方法が考えられますが、この方法では OBS= に指定した数のオブザベーションがダウンロードされてしまいます。 %macro download(data=,out=,max=); data _null_; set &data nobs=cnt; call symput('cnt',left(put(cnt,8.))); stop; run; %if &cnt <= &max %then %do; proc download data=&data out=&out; run; %end; %else %put %str(上限値を越えました。); %mend; 次の例は、リモートホスト側のデータセット『K92』が10,000オブザベーション以上で あった場合、そのデータセットをダウンロードしません。 data k92; set db2.stock92; if hi >= 12000; run; %download(data=k92,out=K92,max=10000) このマクロをリモートホスト側のSASマクロ自動呼び出しライブラリへ登録しておくと、何度もマクロの定義をリモート実行することなく、使用することができます。
|