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
FUSIONS DE TABLES
Sur SAS, il y a deux types de fusions de tables :
- Fusion verticale : on fait une concaténation de tables qui ont des structures identiques (variables de même type et disposées de la même façon). Les lignes (ou observations) sont alors empilées.
La concaténation s'effectue, dans une étape DATA, avec l'instruction SET.
DATA table_finale; /* Création de la table qui va accueillir les autres tables. */
SET table1 table 2; /* Fusion verticale des tables. */
RUN;
- Fusion horizontale : on fait une jointure de tables selon une variable clé identique aux tables. Les colonnes (ou variables) sont alors mises côte à côte.
La fusion horizontale s'effectue en deux temps : d'abords on trie les tables avec l'instruction PROC SORT, puis on les fusionne (jointure) avec l'instruction MERGE.
/* Tri des tables selon la variable clé nommée id */
PROC SORT DATA=table1;
BY id;
RUN;
PROC SORT DATA=table2;
BY id;
RUN;
/* Fusion des tables selon la variable clé nommée id */
DATA table_finale; /* Création de la table qui va accueillir les autres tables. */
MERGE table1 table 2; /* Fusion horizontale des tables. */
BY id;
RUN;
On peut aussi rajouter des conditions pour filtrer les données issues d'une fusion (pour sélectionner juste certaines données).
DATA table_finale; /* Création de la table qui va accueillir les autres tables. */
MERGE table1 (IN=c1) table 2 (IN=c2); /* Fusion horizontale des tables. */
BY id;
IF c1 AND c2 THEN OUTPUT;
RUN;
Il y a 5 façons différentes de faire une jointure :
- IF c1 : Jointure pour tous les identifiants d'une table.
- IF c1 OR c2 : Jointure pour tous les identifiants des deux tables.
- IF c1 AND c2 : Jointure si les identifiants sont communs aux deux tables. Exemple de cette jointure juste au dessus.
- IF c1 AND NOT c2 : Jointure si les identifiants sont présents uniquement dans une table.
- IF NOT (c1 AND c2) : Jointure si les identifiants sont non communs aux deux tables.
Libre à vous de remplacer ou non c1 et c2 par des conditions.