[SAS] Macro variables

Kef96 - Modifié le 9 nov. 2023 à 15:27

Bonjour,

J'ai une question concernant la faisabilité d'un de mes programme.

J'ai un petit bout de code qui me donne le 1er jour du mois précedent au format date/heure qui fonctionne correctement et j'aimerais l'automatiser pour qu'il me donne plusieurs mois précédents en fonction du mois en cours: 

data t;
odt = Today();
    periode_M1 = DHMS(intnx('Month',odt,-1,'beginning'),0,0,0) ;
    call symput ("periode_M1"     ,compress("'" ||put(periode_M1,DATETIME20.)||"'"));
run;
%put periode_M1 = &periode_M1.;

J'ai donc fait une petite macro qui donne ça : 


%macro test(nb_periode);
data t;
odt = Today();
%do i=1 %to &nb_periode.;
    periode_M&i. = DHMS(intnx('Month',odt,-&i.,'beginning'),0,0,0);
    call symput (compress("periode_M"||&i.) ,compress("'" ||put(periode_M&i.,DATETIME20.)||"'"));
%end;
run;
%mend;
%test(4);

%put periode_M1 = &periode_M1.;
%put periode_M2 = &periode_M2.;

Malheureusement, j'ai ce message qui s'affiche : 

34         %put periode_M1 = &periode_M1.;
WARNING: Apparent symbolic reference PERIODE_M1 not resolved.
35         %put periode_M2 = &periode_M2.;
WARNING: Apparent symbolic reference PERIODE_M2 not resolved.

Je ne sais pas comment résoudre le problème.

Avez vous des idées?

D'avance merci.

Kef
 

A voir également: