Téléchargement
illégal
Posez votre question Signaler

Macro SAS : utiliser les données d'un fichier [Résolu]

ju_mp 23Messages postés 26 janvier 2009Date d'inscription 16 mai 2010Dernière intervention - Dernière réponse le 10 mars 2009 à 09:03
Bonjour,
J'ai écrit une macro SAS qui fonctionne... jusque là tout va bien.
Pour l'exécuter, il faut entrer 3 paramètres : ESA ESS et beta. En tout, j'ai 72 combinaisons de ces paramètres. qui sont contenues dans un table de ce genre :
ESA ESS beta
0.25 0.25 0.1
0.25 0.33 0.1
0.25 0.25 0.2
0.25 0.33 0.2
0.33 0.25 0.1
0.33 0.33 0.1
...
Donc je voudrais exécuter ma macro sans avoir à écrire 72 fois '%nb(ESA, ESS, beta);' pour éviter de faire des erreurs.
J'aimerais savoir s'il y a un moyen d'utiliser les données qui sont dans ma table ci-dessus.
J'ai en fait essayé de créer une étape data avec des call symput :
data param;
set param;
call symput ('ES_A', ES_A);
call symput ('ES_S', ES_S);
call symput ('beta', beta);
run;
Mais lorsque je lance ma macro, comme ceci : %nb(&ES_S, &ES_A, &beta);
je n'obtiens un résultat que pour la dernière ligne de ma table.
Si vous pouviez m'aider, ça serait vraiment sympa.
Merci d'avance.
Ju_mp
Lire la suite 

Macro SAS : utiliser les données d'un fichier »

1 réponses
Réponse
+0
moins plus
Bonjour,
Bon, je réponds à mes propres questions, car j'ai eu de l'aide par ailleurs, et je me dis que ça peut peut-être aider quelqu'un :

Il faut utiliser un pgm comme ci-dessous :

Code :

DATA _null_;
SET param end=fin;
call symput("ES_A" || compress(_N_),ES_A);
call symput("ES_S" || compress(_N_),ES_S);
call symput("beta" || compress(_N_),beta);
call symput("M_N", compress(_N_));
run;

Ainsi pour chaque ligne de la table PARAM, tu récupéres 3 macros variables :

ES_A1, ES_S1 et beta1 pour la ligne 1, ...

M_N te donne le nombre de lignes traités et permet ensuite de faire une boucle :

Code :

%do i=1 %TO &M_N;
%nb(&&ES_S&i,&&ES_A&i, &&beta&i);
run;
%end;
Ajouter un commentaire
Ce document intitulé « Macro SAS : utiliser les données d'un fichier » issu de CommentCaMarche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.
Dossier à la une
Passage au tout numérique : quel coût pour les particuliers ?