Bonjour à tous,
Petit nouveau sur le forum, je vous contacte déjà pour faire appel à vos connaissances sassistiques !
Mon problème est simple (du moins à énoncer) :
Je cherche à compiler une macro-variable qui stockerait du code contenant des macro-instructions (du type %do / %if / %end).
Pour faire simple, mon problème pourrait se résumer au problème suivant :
On souhaite construire une macro dont le but serait d'écrire les valeurs successives prises par une macro-variable "i" dans la log (i allant de 1 à 5).
J'ai essayé de passer par un %str ou un %quote (vu que l'exemple suivant fonctionne :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 %macro exemple(); %let boucle1 = %str(%do i=1 %to 5; %put &i.; %end;); %let boucle2 = %quote(%do i=1 %to 5; %put &i.; %end;); &boucle1.; &boucle2.; %mend exemple; %exemple();
), mais dans les deux cas j'obtiens une erreur (j'imagine que le %do doit être compilé dès le départ..).
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 %let p=%str(proc print data=sashelp.class; run;); &p.;
Peut-être aurez-vous une idée à me proposer pour contourner ce souci ?
Remarque importante : je voudrais éviter d'écrire le code souhaité dans un programme .sas créé via SAS, puis faire un %include ensuite pour exécuter le code créé. J'ai déjà testé cette méthode (qui fonctionnait), mais je pense qu'en utilisant les bonnes macro-fonctions textes on doit pouvoir s'en sortir... Non ?!?
En vous remerciant par avance pour vos éventuelles idées, je vous souhaite une bonne journée !
Couillonouss
Partager