2014年3月1日土曜日

マクロ %nobs

データステップを使わないで、OBS数を得るマクロです。よく使う割りに忘れます。

/*
*++
* データセットのOBS数を返す
*--
*/

%macro nobs(ds);
 %local dsid rc;
 %let dsid=%sysfunc(open(&ds));
 %if &dsid %then %do;
  %sysfunc(attrn(&dsid,NOBS));
  %let rc=%sysfunc(close(&dsid));
 %end;
 %else %do;
  -1
 %end;
%mend nobs;

%put nobs=%nobs(sashelp.class);

0 件のコメント :

コメントを投稿