Bonjour,
J'essaie d'automatiser un code qui permet, à partir d'une liste de variables, de décomposer chacune d'entre elles en plusieurs variables binaires.
Exemple : Variable varA va génerer VarA1 jusqu'à VarA20
Variable VarB va générer VarB1 à VarB20 etc...
J'ai créé le code suivant :
prefixe = une liste de préfixe qui composera le nom de mes variables binaires
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 %macro TDC (listevar, prefixe); %let i=; %let j=1; %let var = %scan(&listevar,&j," "); %let pref = %scan(&prefixe,&j," "); %do %while (&j<=1);/*43*/ proc univariate data=sortie.base_acm noprint; output out=&var PCTLPTS=0 TO 100 BY 5 PCTLPRE=&pref; var &var; run; %do i=0 %to 100 %by 5; %let source=; proc sql; select &pref.&i into : source from &var; quit; %let &pref.&i = &source; %put &pref.&i = &&pref.&i; %end;
listevar = une liste de variable à décomposer.
Mon problème concerne : %let &pref.&i = &source;
qui me renvoie une valeur vide lorsque je fais %put &pref.&i = &&pref.&i;
J'ai essayé avec un call symput, call symputx (les deux dans des "data _null_"), un %let et rien de fonctionne.
Ma collègue a eu le même souci et n'a pas trouvé de solution.
Merci d'avance pour votre aide
Partager