Boucle %do avec un %if et %index
Bonjour,
J'essaye de faire une boucle pour classifier en fonction de mot clés.
Les mots clés se trouvent dans la macro-variable "Informatique_decisionnelle".
Mon code ci-après tourne, par contre il ne complète rien.
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
| %let Informatique_decisionnelle=business intelligence-business object-cognos-SAS-SPSS-STAT-R-Hadoop;
%let nbmots = %sysfunc(countw(&Informatique_decisionnelle));
%macro find1;
%do i=1 %to &nbmots;
%let expression=%scan(&Informatique_decisionnelle,&i,'-');
data table; set table;
%if %index(nomProjet,"&expression")>0 %then %do;
categorie1="Informatique";
categorie2="Informatique décisionnelle";
%end;
run;
%end;
%mend;
%find1; |
J'ai essayé le code sur la même logique sans boucle ça marche :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13
| %let Informatique_decisionnelle=business intelligence-business object-cognos-SAS-SPSS-STAT-R-Hadoop;
%let expression=%scan(&Informatique_decisionnelle,4,'-');
data table; set table;
if index(nomProjet,"&expression")>0 then do;
categorie1="Informatique";
categorie2="Informatique décisionnelle";
end;
run; |
Est-ce que quelqu'un aurait une idée d'où peut venir le problème ? Ou s'il y a une meilleure manière de procéder ?
Merci d'avance pour votre aide.