Conditions SAS base dans conditions en macro langage
Bonjour,
Je récupère un prg SAS (qui est dans un macro prg) et je remarque cette situation où du SAS base est imbriqué dans du langage SAS macro. Ne faut-il pas transformer cette partie SAS base en langage macro (%if … %else %do …)
Code:
1 2 3 4 5 6 7
| %IF
. %DO;
IF
THEN DO;
..
END;
%END; |
Merci beaucoup pour vos retours
Conditions SAS base dans conditions en macro langage
Bonjour,
Le macro langage est principalement utilisé à l'extérieur des étapes data et proc.
Ce n'est pas toujours possible de l'utiliser dans une étape data (essayez de remplacer if then else par %if %then %else dans le code suivant) :
Code:
1 2 3 4 5 6 7 8 9
| %macro test(sexe);
data test;
set sashelp.class;
if sex=&sexe then selec=1;
else selec=0;
run;
%mend;
%test("M"); |
ni forcément souhaitable :
Code:
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 27
| 1 %macro test;
2 data test1;
3 do i=1 to 100000;
4 output;
5 end;
6 run;
7
8 data test2;
9 %do i=1 %to 100000;
10 output;
11 %end;
12 run;
13 %mend;
14
15 %test;
NOTE: The data set WORK.TEST1 has 100000 observations and 1 variables.
NOTE: DATA statement used (Total process time):
real time 0.03 secondes
cpu time 0.03 secondes
NOTE: The data set WORK.TEST2 has 100000 observations and 0 variables.
NOTE: DATA statement used (Total process time):
real time 11.85 secondes
cpu time 11.85 secondes |
Vous pouvez aussi regarder l'exemple Contrasting the %IF-%THEN/%ELSE Statement with the IF-THEN/ELSE Statement.
Cordialement,