26%macro mf_getvarcount(libds,typefilter=A
28 %local dsid nvars rc outcnt x;
29 %let dsid=%sysfunc(open(&libds));
32 %let typefilter=%upcase(&typefilter);
34 %let nvars=%sysfunc(attrn(&dsid,NVARS));
35 %
if &typefilter=A %then %let outcnt=&nvars;
36 %
else %
if &nvars>0 %then %
do x=1 %to &nvars;
38 %
if %sysfunc(vartype(&dsid,&x))=&typefilter %then %
do;
39 %let outcnt=%eval(&outcnt+1);
42 %let rc=%sysfunc(close(&dsid));
45 %put unable to open &libds (rc=&dsid);
46 %let rc=%sysfunc(close(&dsid));