FAQ SASConsultez toutes les FAQ
Nombre d'auteurs : 13, nombre de questions : 308, dernière mise à jour : 5 avril 2016 Ajouter une question
Cette F.A.Q., qui traite de tout type de questions portant sur l'outil SAS, a été réalisée à partir des contributions des membres des forums sas de developpez.com en vue de répondre à des questions fréquemment posées par les utilisateurs et grâce à SAS France qui a bien voulu nous donner accès à ses sources.
Si vous désirez contribuer à l'amélioration de cette F.A.Q., vous pouvez participer au billet de participation à l'enrichissement de la faq SAS , ou contacter le responsable SAS , ou contacter un des responsables de l'équipe Business Intelligence .
Nous espérons que cette F.A.Q. saura répondre à un maximum de vos questions. Nous vous souhaitons une bonne lecture.
L'équipe SAS de developpez.com remercie les contributeurs actuels : ash_rmy , bahraoui , datametric , fafabzh6 , Fleur-Anne.Blain , green_fr , oncle_pete , raf64flo , rastoix , s_a_m et steelspirit .
L'équipe SAS de developpez.com remercie aussi claudeLeloup et jacques_jean pour leurs relectures attentives de la F.A.Q. dans le but de chasser les fautes d'orthographes.
Un macroprogramme sert à automatiser une suite de tâches récursives.
Code sas : | Sélectionner tout |
1 2 3 4 5 6 | %MACRO test(var); proc PRINT DATA = &var; run; proc means data=&var; run; %MEND test; |
- sélectionner le code de votre macroprogramme ;
- cliquer sur F8 pour compiler votre macroprogramme ;
- taper le code ci-dessous :
Code sas : | Sélectionner tout |
%test(maTable);
- cliquer sur F8 pour exécuter (utiliser) votre macroprogramme.
Pour sauvegarder un macroprogramme vous devez utiliser les options MSTORED et STORE. Pour sauvegarder votre macroprogramme dans un espace de travail défini par une bibliothèque SAS vous devez ajouter l'option SASMSTORE.
Le code ci-dessous illustre cette notion :
Code sas : | Sélectionner tout |
1 2 3 4 5 | LIBNAME monEsp "c:/"; OPTION MSTORED SASMSTORE=monEsp; %MACRO test / STORE; %PUT Hello; %MEND; |
Voici comment sécuriser votre code enregistré dans un macroprogramme. Ceci fonctionne en 9.1 et 9.2.
Les résultats des étapes désignées par "la lecture du contenu " sont visibles dans la LOG.
Compilation du code :
Code sas : | Sélectionner tout |
1 2 3 4 5 6 7 8 | options mstored sasmstore=sasuser; %macro nonsecure/store; /* La macro est visible */ DATA _null_; x=1; put "Cette macro est générée SANS protection"; run; %mend nonsecure; %nonsecure |
Code sas : | Sélectionner tout |
1 2 3 4 5 6 | filename maccat catalog 'sasuser.sasmacr.nonsecure.macro'; DATA _null_; INFILE maccat; input; list; run; |
Code sas : | Sélectionner tout |
1 2 3 4 5 6 7 | %macro secure/store secure; /* Cette macro est chiffrée */ data _null_; x=1; put "Cette macro est générée AVEC protection."; run; %mend secure; %secure |
Code sas : | Sélectionner tout |
1 2 3 4 5 6 | filename maccat catalog 'sasuser.sasmacr.secure.macro'; DATA _null_; INFILE maccat; input; list; run; |
Lorsque vous programmez un macroprogramme, il se peut que vous souhaitiez récupérer le traitement de ce macroprogramme dans une macrovariable spécifique. Il faut préciser ceci dans le macroprogramme en rajoutant simplement ce que l'on veut récupérer ainsi :
Code sas : | Sélectionner tout |
1 2 3 4 5 6 7 | %macro concat(var1,var2); *Traitement des macrovariables placées en paramètres, par exemple une concaténation ; %let tmp1 =%sysfunc(compress(&var1,%str(%"))); %let tmp2 =%sysfunc(compress(&var2,%str(%"))); %put "&tmp1,&tmp2"; *Affiche le résultat de la concaténation des macrovariables temporaires tmp1 et tmp2; "&tmp1,&tmp2"; *Précise les éléments à renvoyer par le macroprogramme; %mend; |
Code sas : | Sélectionner tout |
%let maVarResultat = %concat(&var1,&var2);
Code sas : | Sélectionner tout |
1 2 3 4 | %let var1 = "Hello"; %let var2 = "World"; %let maVarResultat = %concat(&var1,&var2); %put Le résultat renvoyé par la macro '%concat' est : &maVarResultat; |
Proposer une nouvelle réponse sur la FAQ
Ce n'est pas l'endroit pour poser des questions, allez plutôt sur le forum de la rubrique pour çaLes sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation constitue une œuvre intellectuelle protégée par les droits d'auteur. Copyright © 2024 Developpez Developpez LLC. Tous droits réservés Developpez LLC. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.