|
|
SASデータセットに関する情報(OBS数、変数の数等)を取得する
[OS]ALL
[リリース] 6.07以降
[キーワード] base, datastep, contents, dataset, observation, variable, count, informations, set, statement, nobs=, option, out=, macro
[質問]特定のSASデータセットのオブザベーション数や変数の数を、プログラム中で取得したいのですが、よい方法はありますか。
[回答]
いくつかの方法が考えられます。 proc contents data=sasuser.class out=contout; run; proc print data=contout; run;またマクロを利用すれば、上記で作成したSASデータセットから、オブザベーション数と 変数の数を取得するまでを自動的に行えます。 以下にその方法を示します。 [マクロ定義]
%macro varcnt(data=,mvar=);
%global &mvar;
proc contents data=&data
out=_tmpxx_ noprint;
run;
data _null_ ;
set _tmpxx_ nobs=cnt;
call symput("&mvar",left(put(cnt,8.)));
stop;
run;
%mend;
%macro obscnt(data=,mvar=);
%global &mvar;
data _null_;
set &data nobs=cnt;
call symput("&mvar",left(put(cnt,8.)));
stop;
run;
%mend;
[使用例] %varcnt(data=sasuser.class,mvar=test); %put &test; %obscnt(data=sasuser.class,mvar=test); %put &test;
|
|||||