Bonjour, c'est la première fois que je post ici, alors j'espère l'avoir fait au bon endroit. Voilà la partie du code qui me pose problème : %macro locf(datasetin,datasetout,vars,byvar,visitvar );
%let i=1;
%do i=1 %to %words(&vars)
%let var=%scan(&vars,&i," ");
%let vartypes=%vtype(locfinitial,&var);
data dataset&i;
set &datasetin(keep=&byvar &visitvar &var
where=(&var <>
%if "&vartypes" = "C" %then %do;
' '
%end;
%else %do ;
.
%end;
));
run;
%end;
%mend;
%locf(test,final,Var1 Var2,id,visit); Tout fonctionne parfaitement d'après moi, mais quand je loop, la macro variable "var" devrait contenir la variable "Var1" pour i=1 et "Var2" pour i=2. Et c'est là qu'est le probleme, var ne prend que "Var1", peu importe la valeur de i. Je me retrouve donc avec dataset1 qui contient id, visit et Var1 et mon dataset2 qui contient id, visit et Var2. J'ai essayé de tout vérifier et je pense que le soucis vient de ma fonction %scan que j'utilise pour définir "var".
... View more