Macro avec paramètres stockés dans une table
Bonjour,
Je souhaiterais exécuter une macro en faisant appel à des paramètres stockés dans une table.
Je dispose de la table tab_parametre contenant 5 variables : age, profil, sexe, ville, salaire avec 2000 lignes.
En parallèle, je dispose des tables : BORDEAUX_seniors, PARIS_seniors, PARIS_jeunes, PARIS_familles etc....
J'ai écrit la macro suivante (c'est un exemple pour illustré) :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
|
data compilation ;
run ;
%macro salaire_moyen(age, profil, sexe, salaire, ville ) ;
data base_calcul ;
set &profil._&ville. ;
if salaire > &salaire. ;
run ;
data compilation ;
set compilation base_calcul ;
run ; |
Pour faire appel à ma macro, j'ai écrit le code suivant (2000 lignes d'appels à la macro) :
Code:
1 2
| %salaire_moyen(22,jeunes,masculin,1500,PARIS) ;
%salaire_moyen(60,seniors,masculin,2000,PARIS) ; |
etc...
Les paramètres faisant référence aux données contenues dans la table tab_parametre.
Pour éviter de surcharger mon programme avec ces 2000 lignes d'appel à la macro, je souhaiterais faire appel à une boucle... J'ai commencé à écrire ceci :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
|
/*Nombre lignes table*/
proc sql noprint;
select distinct count(*) into: nb_lignes
from tab_parametre;
quit;
%put &nb_lignes. ;
%macro appel_macro ;
data tab2;
set tab1;
%DO i = 1 %TO &nb_lignes. ;
???
%END ;
run ;
%mend ;
%appel_macro ; |
Mais je ne sais pas comment faire pour que SAS exécute ma macro %salaire_moyen à partir des modalités de ma table tab_parametre.
Merci d'avance pour votre aide !