1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
| %MACRO VRAIF_NUM(entre=, sortie=);
/*liste des variables*/
proc contents data=&entre out=tab(keep=NAME) noprint ;
run;
proc sql noprint;
select * into:variable separated by ' ' from tab;
quit;
/*nombre de variables*/
DATA _NULL_;
ARRAY VECTEUR &variable;
CALL SYMPUT ('nombre',dim(vecteur));
RUN;
/*transformation*/
data &sortie ;
SET &entre ;
%DO i=1 %TO &NOMBRE ;
%LET extract=%SCAN(&variable,&i);
IF &extract ="VRAI" THEN &extract.N ="1";
IF &extract ="FAUX" THEN &extract.N ="0";
%END;
run;
%MEND VRAIF_NUM;
%VRAIF_NUM(entre=work.test1, sortie=work.test2); |
Partager