%macro numvars(data,varlist);
%global numlist;
%let numlist=;
proc sql noprint;
select name into :list separated by ' '
from dictionary.columns
where libname="%upcase(%scan(&data,1,.))" and memname="%upcase(%scan(&data,-1,.))" and type='num';
quit;
%do i=1 %to %sysfunc(countw(&varlist));
%let temp=%scan(&varlist,&i);
%if %sysfunc(findw(%upcase(&list),%upcase(&temp))) %then %let numlist=&numlist &temp;
%end;
%mend numvars;
%numvars(sashelp.class,name weight height age race);
%put &=numlist ;
233 %macro numvars(data,varlist);
234 %global numlist;
235 %let numlist=;
236 proc sql noprint;
237 select name into :list separated by ' '
238 from dictionary.columns
239 where libname="%upcase(%scan(&data,1,.))" and memname="%upcase(%scan(&data,-1,.))"
239! and type='num';
240 quit;
241 %do i=1 %to %sysfunc(countw(&varlist));
242 %let temp=%scan(&varlist,&i);
243 %if %sysfunc(findw(%upcase(&list),%upcase(&temp))) %then %let numlist=&numlist &temp
243! ;
244 %end;
245 %mend numvars;
246
247 %numvars(sashelp.class,name weight height age race);
NOTE: “PROCEDURE SQL”所用时间(总处理时间):
实际时间 0.00 秒
CPU 时间 0.00 秒
248
249 %put &=numlist ;
NUMLIST=weight height age
... View more