Salut,

Je n'arrive pas à comprendre ce qui ne fonctionne pas avec mon programme.

J'essaie de faire des tableaux croisés pour des variables prises 2 à 2 (variables portant le même nom mais différent en bout de chaine par cat1 ou cat2 ). Le programme ci-dessous est supposé me faire une table de fréquence entre var1_cat1 et var1_cat2 une autre table entre var2_cat1 et var2_cat2 etc.. Puis il m'exporte le résultat dans une table appelé table_var1_cat12 et enfin il me la télécharge en local.

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
%let variable = "var1 var2 var3 var4";
%macro table_croise;
proc freq data=table noprint;
%do i=1 %to 4;
table %scan(&variable.,&i.," ")_cat1 * %scan(&variable.,&i.," ")_cat2 / out=table_%scan(&variable.,&i.," ")_cat12;
run;
proc download data=table_%scan(&variable.,&i.," ")_cat12;
run;
%end;
%mend table_croise;
%table_croise;
Lorsque je lance le programme, sas me sous-ligne en rouge l'instruction table en mettant
Code : Sélectionner tout - Visualiser dans une fenêtre à part
ERREUR 180-322: Instruction incorrecte ou mal utilisé