Bonjour,
J’ai un souci avec le call execute.
J’ai une table à 20 lignes et une colonne.
J’ai stocké mes 20 valeurs dans des macro variables.
Je souhaite exécuter ma macro (qui fonctionne) pour chacune de mes macrovariables, que je passe en paramètre.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 data table; set table; call symputx(cats("a",_n_), cod); run;
Questions :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 data _null_; set table; do i = 1 to nbcod; call execute('%mamacro(tablein1,tablein2,grp,petit,&&a&i,&i)'); end; run;
1. combien de fois call execute est elle lancée ?
- nbcod fois correspondant à mon i ?
- nbcod fois correspondant au nombre de ligne dans table ?
- nbcod*nbcod fois car à chaque itération du data step (total=nbcod fois), call execute est lancée nbcod fois ?
2.
sans la boucle, sans le call execute : ma macro se lance comme il faut
sans la boucle, avec le call execute : ma macro se lance comme il faut
avec la boucle, avec le call execute : ma macro ne se lance pas comme il faut
=> je n’arrive pas à passer le paramètre i : si je mets &i, il n’est pas reconnu
WARNING: Apparent symbolic reference I not resolved.
ERROR: The text expression &I contains a recursive reference to the macro variable I. The macro variable will be assigned the null value.
Auriez vous une idée ?
Merci
Partager