Les dictionnaires sont des tableaux associatifs dans lesquels chaque clés est reliée à une valeur.
Un dictionnaire se crée avec des accolades.
dico = {} # Création d'une dictionnaire vide
dico = {'clé1' : 'valeur1', 'clé2' : 'valeur1', 'clé3' : 'valeur3'} # Création d'une dictionnaire avec 3 valeurs
Pour ajouter une valeur dans un dictionnaire, il faut indiquer une clé entre crochets.
mon_dico[clé] = valeur # Ajout de valeur à la "position" clé
Si on ajoute une valeur à une clé existante, cela remplacera l'ancienne valeur par la nouvelle.
À savoir : si on boucle sur un dictionnaire, Python nous renverra les clés :
for element in dico:
print(element) # Affiche clé1 puis clé2 puis clé3
Les dictionnaires sont des tableaux associatifs dans lesquels chaque clés est reliée à une valeur.
Un dictionnaire se crée avec des accolades.
dico = {} # Création d'une dictionnaire vide
dico = {'clé1' : 'valeur1', 'clé2' : 'valeur1', 'clé3' : 'valeur3'} # Création d'une dictionnaire avec 3 valeurs
Pour ajouter une valeur dans un dictionnaire, il faut indiquer une clé entre crochets.
mon_dico[clé] = valeur # Ajout de valeur à la "position" clé
Si on ajoute une valeur à une clé existante, cela remplacera l'ancienne valeur par la nouvelle.
À savoir : si on boucle sur un dictionnaire, Python nous renverra les clés :
for element in dico:
print(element) # Affiche clé1 puis clé2 puis clé3
MACRO-PROGRAMMES
Les macro-programmes servent à automatiser les programmes. C'est un quelque sorte l'équivalent des fonctions dans les autres langages informatiques.
Exemple d'utilisation de macro-programmes :
Un Data Manager doit réaliser une analyse statistique de la banque A. Sachant, que la même analyse va lui être demandée pour les banques B, C et D. Il souhaite automatiser son programme et va donc utiliser un macro-programme.
La création d'un macro-programme commence toujours par l'instruction %MACRO et se termine toujours par l'instruction %MEND.
La syntaxe est la suivante :
%MACRO NomProgramme(Parametre1, Parametre2, ParametreN);
Code
%MEND NomProgramme;
Exemple :
%MACRO progA(maVar1); /* Création du macro-programme nommé progA qui a comme paramètre la macro-variable nommée maVar1. */
%LET maVar2=&maVar1.Stid;
%PUT &maVar1;
%PUT &maVar2;
%MEND progA; /* Ne pas oubliez le nom du macro-programme après l'instruction %MEND. */
Pour utiliser un macro-programme il faut précéder le nom du macro-programme par le caractère %.
%progA(Hello); /* On remplace le paramètre par la valeur qu'il doit prendre. */
/* Ce macro-programme affiche le contenu de la macro-variable maVar1, soit Hello, puis affiche le contenu de la macro-variable maVar2 soit HelloStid. */
Autre exemple :
%MACRO analyse(table,stat,var);
PROC MEAN DATA=&table &stat;
VAR &var;
RUN;
%MEND analyse;
%analyse(Table1,MEAN,taille);
À savoir : un macro-programme n'est pas obligé d'avoir de paramètre.
Un macro-programme peut avoir 4 types de paramètres :
- Paramètres positionnels : lors de l'utilisation de macro-programmes définis à l'aide de paramètres positionnels (macro-programme présentés au dessus), la position des paramètres doit être dans le même ordre que celui définit lors de leur création.
- Paramètres mots clés : ils permettent la définition de valeurs par défaut pour un ou des paramètres d'un macro-programme.
%MACRO progB(maVar1=,maVar2=,maVar3=Stid); /* Le macro-programme a 3 paramètres (maVar1, maVar2 et maVar3). La macro-variable nommée maVar3 a par défaut la valeur Stid. */
%PUT &maVar1
%PUT &maVar2;
%PUT &maVar3;
%MEND progB;
%progB(maVar1=Hello,maVar2=Lisieux); /* Utilisation du macro-programme avec les mots Hello et Lisieux. Affiche Hello Lisieux Stid. */
Lors de l'utilisation du macro-programme, libre à vous de changer ou non la valeur du paramètre défini par défaut.
- Paramètres mixtes : ils combinent les paramètres positionnels et mots clés. Les paramètres positionnels doivent être déclarés avant les paramètres mots clés.
%MACRO progC(maVar1,maVar2,maVar3=Stid); /* maVar1 et maVar2 sont des paramètre positionnels et maVar3 est un paramètre mot clé. */
%PUT &maVar1;
%PUT &maVar2;
%PUT &maVar3;
%MEND progC;
%progC(Hello,Lisieux); /* Utilisation du macro-programme avec les mots Hello et Lisieux. Affiche Hello Lisieux Stid. */
- Paramètres non fixés à l'avance : quand on ne connait pas à l'avance les paramètres que l'on souhaite utilisés. On l'utilise donc l'option PARMBUFF. Ces types de paramètres sont assez compliqués, c'est pourquoi il ne sont pas beaucoup utilisés.
%MACRO autoBanque/PARMBUFF; /* L'option PARMBUFF indique que les paramètres vont être stockés dans la macro-variable syspbuff (syspbuff est un mot clé SAS, il ne faut pas changer son nom). */
%LET base=&SCAN(&syspbuff,1); /* Le paramètre nommé base prendra la valeur du 1er élément de la macro-variable syspbuff. */
%LET compte=&SCAN(&syspbuff,2); /* Le paramètre nommé compte prendra la valeur du 2ème élément de la macro-variable syspbuff. */
PROC PRINT DATA=&base; /* Affiche la table dont le nom est enregistré dans la macro-variable base. */
RUN;
%PUT &compte;
%MEND autoBanque;
%autoBanque(banqueB, compteB); /* Utilisation du macro-programme avec les mots banqueB et compteB. Ce sont les deux éléments contenus dans la macro-variable syspbuff. */
Pour déboguer un macro-programme, on doit utilisez les options de débogage intitulées MPRINT, MLOGIC, SYMBOLGEN.
OPTIONS MPRINT MLOGIC SYMBOLGEN; /* Instructions à insérer à la première ligne du programme SAS. */
MPRINT : donne le code SAS détaillé, instruction par instruction.
MLOGIC : affiche dans le journal tous les détails des opérations faites par le macro-programme (valeurs des paramètres, instructions …).
SYMBOLGEN : affiche un message à chaque application d’une macro-variable.
Si l'on souhaite que SAS enregistre automatiquement nos macro-programmes dans une bibliothèque, il faut utiliser les instructions OPTIONS MSTORED SASMSTORE.
OPTIONS MSTORED SASMSTORE=MaBiblio; /* MSTORED et SASMSTORE permettent d'utiliser et de stocker les macro-programmes, que l'on va créer, dans la bibliothèque nommée MaBiblio. */
Enfin, lors de l'écriture du macro-programme, il faudra ajouter l'option STORE pour que le macro-programme soit enregistré dans notre bibliothèque.
%MACRO progA(maVar1)/STORE;