Bonjour,
j'ai ma macro ci-dessous qui ne marche et je ne sais pas pourquoi
c'est une macro qui est censé récupéré la sortie d'une proc freq et compter le nombre de modalités de la variable puis créer une macro variable pour chaque modalité puis diviser la base selon chaque modalité mais la dernière partie ne marche pas et je ne sais pas pourquoi.
Je fais tout cela car il y a une autre partie du code que je dois tester après. je sais que la création de la macro variable avec le %scan ne marche pas dans mon code
Ci-dessous mon code
Je vous remercie pour votre aide
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
23
24
25
26
27 %macro test ; %do i=1 %to 3 ; data praxedo_A; set praxedo_A; test&i=substr(n&i,1,3); run; PROC FREQ DATA=user.praxedo_A ; TABLE test&i / out=cardinalites&i NOPRINT ; RUN ; proc sql ; select distinct test&i into :NBVAL&i SEPARATED BY "," from cardinalites&i ; quit; data _null_; set cardinalites&i nobs=nobs&i ; call symput ("nbobs&i",nobs&i); run; %do j=1 %to &nbobs&i ; %let varmots&j=%scan("NBVAL&i",&j,","); data prax_A_&j restant; set praxedo_A ; if index(test&i,"varmots&j")=1 then output prax_A_&j; else output praxedo_A_2; run ; %end; %mend; %test;
cdt,
Partager