Télécharger la présentation
La présentation est en train de télécharger. S'il vous plaît, attendez
1
Informatique décisionnelle
SAS
2
Bibliothèque de données SAS
Une bibliothèque de données SAS peut se comparer au tiroir d’un classeur et une table SAS, à l’une des chemises se trouvant dans un tiroir du classeur. Peu importe le système d’exploitation hôte que vous utilisez, vous devez identifier les bibliothèques de données en assignant à chacune une référence bibliographique (libref). Lorsque vous invoquez SAS, vous avez accès automatiquement à des bibliothèques de données SAS, soit une temporaire (work) et une permanente (sasuser, sashelp).
3
Assignation d’une libref
Vous pouvez utiliser l’instruction LIBNAME pour assigner à une libref à une bibliothèque de données SAS. Format général de l’instruction LIBNAME : LIBNAME libref ‘bibliothèque-de-données-SAS’ <options> ; Règles d’affectation de nom à une libref : Doit compter 8 caractères ou moins; Doit commencer par une lettre ou un trait de soulignement; Les caractères qui suivent peuvent être des lettres, des chiffres ou des traits de soulignement.
4
Assignation d’une libref
Exemples : Windows Libname libsas ‘c:\cours\dev’; Unix Libname libsas ‘/cours/dev’;
5
Lecture de fichiers de données brutes : Méthode d’entrée par colonnes
Objectifs : Créer une table SAS temporaire à partir d’un fichier de données brutes. Créer une table SAS permanente à partir d’un fichier de données brutes. Expliquer comment l’étape DATA traite les données. Lire des données standard avec la méthode d’entrée par colonnes. Historisées : Pas de suppressions, Nécessité d’un référentiel de temps. L’historisation permet l’extrapolation, la mesure de l’impact d’une décision par comparaison de la situation avant et après la mise en application de cette décision. Exemple : Suivi des évolutions des comportements des clients
6
Création d’une table SAS
Pour créer une table SAS à partir d’un fichier de données brutes, vous devez : Débuter par une étape DATA et nommer la table SAS qui sera créée (instruction DATA). Identifier l’emplacement du fichier de données brutes (instruction INFILE) Donner les instructions nécessaires à la lecture des champs du fichier de données brutes (instruction INPUT)
7
Création d’une table SAS
Format général de l’instruction DATA : DATA libref.table(s)-SAS; Exemple : L’instruction DATA crée une table temporaire SAS nommée tabtest. DATA work.tabtest; Exemple : L’instruction DATA crée une table permanente SAS nommée tabtest. libname ia ‘bibliothèque-de-données-SAS’; DATA ia.tabtest;
8
Pointeur vers un fichier de données brutes
Format général de l’instruction INFILE : INFILE ‘nom-de-fichier’ <options>; Exemples : UNIX Infile ‘/users/fic.dat’; WINDOWS Infile ‘c:\fichier\fic.dat’;
9
Lecture de champs de données
Format général de l’instruction INPUT : INPUT spécifications-input; Les spécifications-input : nomment la variable SAS identifient les variables comme type de caractère ou type numérique identifient l’emplacement du fichier de données brutes peuvent suivre la syntaxe d’entrée par colonnes, formatée, de liste ou par nom.
10
Lecture de données avec la méthode d’entrée par colonnes
La méthode d’entrée par colonnes est adéquate pour la lecture : Des données à l’intérieur de colonnes fixes Des données de type caractère et de type numérique standard. Format général de l’instruction INPUT par colonnes : INPUT variable <$> debutcol-fincol … ; Exemples de données de type numérique standard : E E-3
11
Lecture de données avec la méthode d’entrée par colonnes
Fichier de données brutes Etape DATA Data nom-table-SAS; infile ‘nom-de-fichier-données-brutes’; input variable <$> debutcol-fincol … ; Run;
12
Création de tables SAS temporaires
Emmagasinez la table test dans la bibliothèque work. data work.test; infile ‘donneebrute.txt’ ; input vol $ 1-3 Date $ 4-11 Dest $ first 15-17 Eco 18-20; run;
13
Exercice Veuillez créer un fichier txt, avec des données comme dans l’exemple précédent , et veuillez créer une étape Data pour extraire les données. Modifiez l’étape DATA afin d’emmagasiner de façon permanente la table.
14
Lecture de fichiers de données brutes :
méthode de données d’entrée formatées Objectifs : Lire des données de type caractère et numérique standard et non standard à l’aide de données d’entrée formatées. Lire des valeurs de date et les convertir en valeurs de date SAS
15
Lecture de données brutes à l’aide de la
méthode de données d’entrée formatées La méthode de données d’entrée formatées permet de lire : Des données à l’intérieur de colonnes fixes Des données de type caractère et de type numérique standard et non standard Des valeurs chronologiques à convertir en valeurs de date SAS.
16
Lecture de données brutes à l’aide de la
méthode de données d’entrée formatées Format général de l’instruction INPUT avec la méthode de données d’entrée formatées : INPUT contrôle-du-pointeur variable informat … ; Vous pouvez utiliser la méthode de données d’entrée formatées pour lire des valeurs de données en : amenant le pointeur d’entrée à la première position du champ précisant un nom de variable précisant un informat
17
Lecture de données brutes à l’aide de la
méthode de données d’entrée formatées Contrôle du pointeur : @n améne le pointeur à la colonne n +n déplace le pointeur de n positions Un informat définit La largeur du champ d’entrée La façon de lire les valeurs de données emmagasinées dans le champ
18
Lecture de données brutes à l’aide de la
méthode de données d’entrée formatées Exemple : data test; infile 'donneebrute.txt'; vol Date mmddyy8. @12 Dest Class 3. @18 Eco 3.; run;
19
Qu’est ce qu’un informat SAS ?
Un informat est une instruction que SAS utilise pour lire des valeurs de données. Format général d’un informat : <$> nom-informatw. <d> <$> Informat de type caractère w Largeur du champ à lire Délimiteur requis <d> Nombre de décimales
20
Informats sélectionnés
8. ou 8.0 lit 8 colonnes de données de type numérique Valeurs de données brutes Informat Valeurs de données SAS 8.2 lit 8 colonnes de données de type numérique et peut insérer un signe décimal dans la valeur de données Valeurs de données brutes Informat Valeurs de données SAS
21
Valeurs de date SAS SAS emmagasine les valeurs des dates comme des valeurs numériques. Une valeur de date SAS est interprétée comme le nombre de jours entre le 1er janvier 1960 et la date visée.
22
Conversion de dates en valeurs de date SAS
SAS utilise des informats de date pour lire et convertir les dates en valeurs de date SAS. Exemples :
23
Lecture de feuilles Excel
Objectifs : Créer une table SAS à partir d’une feuille Excel à l’aide de l’assistant d’importation. Créer une table SAS à partir d’une feuille Excel à l’aide de la PROC IMPORT.
24
La procédure IMPORT Format général de la procédure IMPORT :
PROC IMPORT OUT=table-SAS DATAFILE=‘nom-de-fichier-externe’ <DBMS=type-de-fichier> <REPLACE>; RUN; REPLACE : écrase une table SAS qui existe déjà.
25
La procédure IMPORT Code SAS généré par l’assistant Import pour lire un fichier Excel : PROC IMPORT OUT=Work.test DATAFILE=‘donnee_source.xls’ DBMS=EXCEL REPLACE; MIXED=YES; RUN; MIXED=YES : Convertit des données dont les valeurs sont numériques en valeurs caractères pour une colonne contenant des types de données mixtes.
26
La procédure IMPORT Que faire, si les données étaient stockées dans un fichier texte délimité par des tabulations ? Changez le code PROC IMPORT afin de lire le fichier délimité par des tabulations. PROC IMPORT OUT= WORK.TEST DATAFILE= ‘données-source.txt’ DBMS=TAB REPLACE; RUN;
27
Exercice A partir de votre fichier source crée précédemment, veuillez délimiter vos données par un TAB, et veuillez utiliser la proc import pour l’extraction.
28
Initiation à la procédure PRINT
Objectifs : Générer des listes simple au moyen de la procédure PRINT. Afficher les variables sélectionnées(colonnes) dans une liste. Afficher les observations sélectionnées(rangées) dans une liste. Afficher une liste avec des totaux.
29
Création d’une liste par défaut
Format général de la procédure PRINT : PROC PRINT DATA=table-SAS; RUN; Exemple: Libname cours ‘bibliotheque-de-données-SAS’; Proc print data=cours.liste; Run;
30
Impression des variables sélectionnées
L’instruction VAR permet : de sélectionner les variables à inclure dans la liste. de déterminer l’ordre dans lequel les variables seront affichées dans la liste. Format général de l’instruction VAR : VAR variable(s); Exemple : Proc print data=libref.tablesas; var colonne1 colonne2 ; Run;
31
Suppression de la colonne OBS
Utilisez l’option NOOBS pour supprimer les numéros de rangées de la partie gauche du rapport. Format général de l’option NOOBS : PROC PRINT DATA=table-SAS NOOBS; RUN;
32
Définition de sous-ensembles de données : l’instruction WHERE
Permet de sélectionner les observations correspondant à certains critères Peut être utilisé avec la plupart des procédures SAS Format général de l’instruction WHERE : WHERE expression-where; L’expression-where est une séquence d’opérandes et d’opérateurs.
33
Définition de sous-ensembles de données : l’instruction WHERE
Les opérandes comprennent les éléments suivants : Variables Fonctions Constantes Les opérateurs comprennent : Des opérateurs de comparaison Des opérateurs logiques Des opérateurs spéciaux
34
Opérateurs de comparaison
35
Opérateurs de comparaison
Exemples : where Salary >25000; where EmpID = ‘0082’; where Salary =. ; where LastName = ‘ ‘; where Job in (‘consultant’, ‘pilote’); Les comparaisons de valeurs de type caractère tiennent compte des majuscules et des minuscules. L’opérateur IN accepte les virgules ou les blancs pour séparer les valeurs.
36
Opérateurs logiques Les opérateurs logiques comprennent : AND OR NOT
Exemples : … where Job=‘Consultant’ and Salaire > 5000; … where Job=‘Consultant’ OR Job=‘pilote’; … where Job not in (‘Consultant’,’pilote’);
37
Opérateurs spéciaux Les opérateurs spéciaux comprennent :
BETWEEN – AND sélectionne les observations dans lesquelles la valeur de la variable se trouve inclusivement à l’intérieur d’une plage de valeurs. … where salary between and 70000; CONTAINS sélectionne les observations qui contiennent la sous-chaîne de caractères précisée. … where Nom ? ‘LAM’; (LAMBERT,BELLAMY, et ELAM sont sélectionnés.)
38
Requête de totaux de colonne
L’instruction SUM génère des totaux de colonne. Format général de l’instruction SUM : SUM variable(s); L’instruction SUM génère également des sous-totaux si vous regroupez les données au moment de l’impression. EXERCICES
39
Exercices A partir de la table Class qui se trouve dans la SASHELP : 1. Affichez les lignes ou l’age est supérieur à 12 ans et dont le Name contient ‘Ja’; 2. Imprimez seulement les variables Name, Sex et Age A partir de la même table : 1. Affichez les lignes qui correspondent aux hommes. 2. Supprimez les numéros de rangées 3. Imprimez toutes les variables 4. Affichez les totaux de colonne pour les variables Height et Weight EXERCICES
40
Ordonnancement et regroupement des observations
Objectifs Ordonnancer (tri) des observations dans une table SAS Regrouper les observations dans une liste Imprimer les sous-totaux de colonne dans une liste Contrôler les sauts de page pour les sous-groupes.
41
Tri d’une table SAS Pour obtenir des totaux de sous-groupe à l’aide de PROC PRINT, les observations dans la table doivent être groupée : La procédure SORT : réorganise les observations dans une table SAS permet de créer une nouvelle table SAS contenant les observations réorganisées permet de trier au moyen de plusieurs variables permet de trier en ordre croissant (valeur par défaut) ou décroissant. ne génère pas une sortie imprimée traite les valeurs manquantes comme la plus petite valeur possible
42
Tri d’une table SAS Format général de l’étape PROC SORT :
PROC SORT DATA=Table-SAS-d ’entrée OUT=table-SAS-de-sortie ; BY <DESCENDING> variable(s)-by; RUN; Exemples : Proc sort data=sashelp.prdsale out=trivente ; by actual; Run; by Country descending actual;
43
Impression de sous-totaux et de totaux
Imprimez la table en la regroupant par Country avec un sous-total à la colonne Actual pour chaque Country. Proc sort data=sashelp.prdsale out=work.tri; by country; Run; Proc print data=work.tri; sum actual;
44
Sauts de page Utilisez l’instruction PAGEBY afin que chaque sous-groupe apparaisse sur une page distincte. Format général de l’instruction PAGEBY : PAGEBY variable-by; Proc print data=work.tri; by country; pageby country; sum actual; Run;
45
Personnalisation de l’apparence des rapports
Objectifs Définir les titres et les notes de bas de page pour améliorer l’apparence d’un rapport Définir des en-têtes de colonne descriptifs. Utiliser les options du système SAS
46
Définition des titres et de notes de bas de page
Vous utilisez les titres et les notes de bas de page pour améliorer l’apparence d’un rapport. Format général de l’instruction TITLE : TITLEn ‘texte’; Format général de l’instruction FOOTNOTE : FOOTNOTEn ‘texte’; Exemples : Title1 ‘Cours BI’; Footnote2 ‘ESIAG’;
47
Définition des titres et de notes de bas de page
Les caractéristiques d’un titre sont les suivants : Le titre s’affiche dans la partie supérieure de la page Le titre par défaut est THE SAS SYSTEM La valeur n peut être une valeur de 1 à 10 Une entrée TITLE non numérotée équivaut à TITLE1. Un titre demeure en vigueur tant qu’il n’est pas modifié ou annulé ou que vous ne mettez pas fin à votre session SAS. L’instruction title; annule tous les titres.
48
Définition des titres et de notes de bas de page
Les caractéristiques d’une note bas de page sont les suivantes : La note bas de page s’affiche dans la partie inférieure de la page Aucune note bas de page ne s’affiche si elle n’a été définie. La valeur n peut être une valeur de 1 à 10. Une entrée FOOTNOTE non numérotée équivaut à FOOTNOTE1 Une note bas de page demeure en vigueur tant qu’elle n’est pas modifiée ou annulée ou que vous ne mettez pas fin à votre session SAS. L’instruction footnote; annule toutes les notes de bas de page.
49
Assignation d’étiquettes de colonne
Format général de l’instruction LABEL : LABEL variable=‘étiquette’ variable=‘étiquette’; ‘étiquette’ définit une étiquette d’une longueur maximale de 256 caractères. Les étiquettes sont utilisées : pour remplacer les noms de variable dans une sortie SAS automatiquement dans plusieurs procédures avec la procédure PRINT lorsque l’option LABEL ou SPLIT = sont spécifiés avec l’instruction PROC PRINT.
50
Assignation d’étiquettes de colonne
Exemples : Proc print data=work.tri label; label actual = 'ventes'; title1 'Infos Ventes'; footnote1 'ESIAG'; Run;
51
Exercices 1. Organisez le rapport en ordre croissant d’âge puis imprimez chaque âge sur une page distincte. 2. Ajoutez au rapport le titre ‘Info Age’ 3. Utilisez les étiquettes ci-dessous pour remplacer le nom des variables Name Nom Sex Sexe
52
Formatage des valeurs de données
Objectifs : Afficher dans une liste les valeurs formatées au moyen des formats SAS. Créer des formats définis par l’utilisateur au moyen de la procédure FORMAT Appliquer des formats définis par l’utilisateur aux variables d’une liste
53
Formatage des données Pour appliquer un format à une variable SAS particulière, utilisez l’instruction FORMAT. Format général de l’instruction FORMAT : FORMAT nom-de-variable format-de-variable(s); Exemple : proc print data=sashelp.prdsal3 ; format date date9.; Run;
54
Qu’est ce qu’un format SAS ?
Un format est une instruction que le système SAS utilise pour écrire la valeur des données. La structure générale des formats SAS est la suivante ; <$>format<w>.<d> <$> format de type caractère Format Nom du format <w> Largeur totale(y compris les décimales et les caractères spéciaux) . Délimiteur requis <d> Nombre de décimales
55
Formats SAS Formats SAS les plus courants :
56
Formats SAS Si vous ne précisez pas une largeur suffisante pour accommoder la valeur numérique, la valeur affichée est automatiquement modifiée pour s’ajuster à la largeur.
57
Formats SAS N’oubliez pas qu’une date SAS est emmagasinée comme le nombre de jours entre le 01JAN1960 et la date précisée. Les formats de date SAS affichent les valeurs de date SAS selon des formats de date standard. Formats de date SAS sélectionnés : MMDDYYw. DATEw.
58
Formats SAS Exemples :
59
Création de formats définis par l’utilisateur
Le système SAS offre aussi la procédure FORMAT qui permet de définir des formats personnalisés. Pour créer et utiliser vos propres formats : 1. Utilisez la procédure FORMAT pour créer le format voulu. 2. Appliquez le format à des variables spécifiques au moyen de l’instruction FORMAT
60
Création de formats définis par l’utilisateur
Format général d’une étape PROC FORMAT : PROC FORMAT; VALUE nom-de-format plage1=‘etiquette’ plage2=‘etiquette’ …. ; RUN;
61
Création de formats définis par l’utilisateur
Nom-de-format : désigne le format que vous créez. ne peut comprendre plus de 32 caractères les valeurs de type caractère doivent avoir le signe dollar ($) comme premier caractère, une lettre ou un trait de soulignement comme deuxième caractère. les valeurs de type numérique doivent avoir une lettre ou un trait de soulignement comme premier caractère. ne peut se terminer par un chiffre. ne peut être le nom d’un format du système SAS. ne se termine pas par un point dans l’instruction VALUE
62
Création de formats définis par l’utilisateur
Les étiquettes : doivent avoir une longueur de caractères ou moins. sont habituellement entre guillemets, malgré que ce ne soit pas nécessaire. Plage(s) : peuvent être des valeurs uniques. plages de données.
63
Création de formats définis par l’utilisateur
Assignez des étiquettes à des chiffres uniques. Proc format; value genre 1=‘Femme’ 2=‘Homme’ other=‘Bi’ ; Run; genre : nom du format de type numérique 1, 2 : valeur de données de type numérique other : mot clé Femme, Homme, Bi : valeur formatée
64
Création de formats définis par l’utilisateur
Assignez des étiquettes à des plages de chiffres. Proc format; value poids low-50=‘Maigre’ 50-90=‘Moyen’ 90-high=‘Gros’ ; Run; Low, high : Mot clé
65
Création de formats définis par l’utilisateur
Assignez des étiquettes à des valeurs de type caractère et à des plages de Valeurs de type caractère. Proc format; value $Niveau ‘A’=‘Bien’ ‘B’ – ‘D’=‘Moyen’ ‘E’=‘Mauvais’ other=‘Catastrophique’; Run;
66
Création de formats définis par l’utilisateur
Etape 1 : Créez le format Proc format; value $format ‘t’=‘toto’ ‘u’=‘tutu’; Run; Etape 2 : Appliquez le format. Proc print data=work.table; format champ $format. ; // Ne pas oublier le .
67
Exercices A partir de la table Class (dans SASHELP), créez un format sur le sexe, ainsi que sur la taille. Pour le sex, affichez pour : sex = ‘F’, la valeur féminin sex = ‘M’, la valeur masculin Pour la taille, définissez 3 intervalles, et affichez les valeurs Grand, Moyen ou Petit. Affichez en sortie les champs name, sex, height, en appliquant les formats.
68
Lecture de tables SAS et création de variables
Objectifs Créer une table SAS à partir d’une autre table SAS utilisée comme entrée. Créer des variables SAS. Utiliser les opérateurs et les fonctions SAS pour manipuler les valeurs de données. Contrôler quelles variables sont incluses dans une table SAS.
69
Lecture d’une table SAS
Format général d’une étape DATA : DATA table-SAS-sortie; SET table-SAS-entrée; autres instructions SAS; RUN; Par défaut, l’instruction SET lit : toutes les observations de la table SAS d’entrée toutes les variables de la table SAS d’entrée
70
Instructions d’assignation
Une instruction d’assignation : évalue une expression assigne la valeur résultante à une variable. Format général d’une instruction d’assignation : variable=expression; Une expression contient des opérandes et des opérateurs formant un ensemble d’instructions qui produisent une valeur. Les opérandes sont : des noms de variables, des constantes. Les opérateurs sont : des symboles qui demandent d’exécuter un calcul arithmétique, des fonctions SAS.
71
Etape DATA data newtab; set work.test; Total = first+Eco; run;
proc print data=newtab; format Date date9. ;
72
Utilisation des fonctions SAS
Une fonction SAS est un programme qui retourne une valeur définie à partir des arguments précisés. Format général d’une fonction SAS : Nom-de-fonction (argument1, argument2,…)
73
Utilisation des fonctions SAS
Les fonctions SAS exécutent des opérations arithmétiques calculent des statistiques (par exemple sommation, moyenne et écart-Type) manipulent les dates SAS et traitent les valeurs de type caractère exécutent plusieurs autres tâches. Les fonctions de statistiques ne tiennent pas compte des valeurs manquantes. Exercices : Utilisation de la fonction SUM
74
Utilisation de la fonction SUM
data total ; set work.test; Total = sum(first, eco); Run;
75
Utilisation des fonctions de Date
Vous pouvez utiliser les fonctions de date SAS pour : créer des valeurs de date SAS extraire de l’information des valeurs de date SAS. TODAY() : obtient la valeur de date de l’horloge système. MDY(mois, jour, année) : utilise les valeurs mois, jour et année pour retourner la valeur de date SAS correspondante.
76
Fonctions Date : extraction d’information
YEAR(date-SAS) extrait l’année d’une date SAS et retourne une valeur à quatre chiffres pour l’année QTR (date-SAS) extrait le trimestre d’une date SAS et retourne un chiffre de 1 à 4. MONTH(date-SAS) extrait le mois d’une date SAS et retourne un chiffre de 1 à 12. WEEKDAY(date-SAS) extrait le jour de la semaine d’une date SAS et retourne un chiffre de 1 à 7, où 1 représente dimanche, etc.
77
Utilisation de la fonction WEEKDAY
Ajoutez une instruction d’assignation à l’étape DATA pour créer une variable qui représente le jour de la semaine où le vol a lieu. data vol; set work.test; Total = sum(first,eco); JourSem= weekday(Date); run; Proc print data=vol; format Date weekdate. ; Run;
78
Sélection des variables
Vous pouvez utiliser une instruction DROP ou KEEP dans une étape DATA Pour contrôler quelles variables seront écrites dans la nouvelle table SAS. Format général des instructions DROP et KEEP : DROP variables; KEEP variables; data vol; set work.test; drop first eco; Total = first+eco; run;
79
Traitement conditionnel
Objectifs Exécuter de façon conditionnelle des instructions avec la logique IF-THEN. Contrôler de façon explicite la longueur des variables. Sélectionner des rangées à inclure dans une table SAS. Utiliser les constantes de date SAS.
80
Exécution conditionnelle
Air France désire calculer le chiffre d’affaires des vols à destination de Los Angeles et Dallas en fonction des prix dans le tableau ci-dessous :
81
Exécution conditionnelle
Format général des instructions IF-THEN et ELSE IF expression THEN instruction; ELSE instruction; Une instruction contient des opérandes et des opérateurs formant un ensemble d’instructions qui produisent une valeur.
82
Exercices Calculer le chiffre d’affaires en fonction de la destination des vols .
83
Exécution conditionnelle
data Cavol; set work.test; total = sum(class,eco); if dest=‘LAX’ then revenu=sum(2000*first,1200*eco); else if dest=‘DFW’ then revenu=sum(1500*first,900*eco); run;
84
La fonction UPCASE Vous pouvez utiliser la fonction UPCASE pour convertir des lettres minuscules à majuscules. Format général de la fonction UPCASE : UPCASE(argument) Utilisez la fonction UPCASE pour convertir les valeurs Dest en majuscules pour la comparaison.
85
Exécution conditionnelle
data Cavol; set work.test; total = sum(class,eco); if upcase(dest) =‘LAX’ then revenu=sum(2000*first,1200*eco); else if upcase(dest) =‘DFW’ then revenu=sum(1500*first,900*eco); run;
86
Exécution conditionnelle
Vous pouvez utiliser les instructions DO et END pour exécuter un groupe d’instructions en fonction d’une condition. Format général des instructions DO et END : IF expression THEN DO; instructions exécutables END; ELSE DO;
87
Exécution conditionnelle
Utilisez les instructions DO et END pour exécuter un groupe d’instructions en fonction d’une condition. data Cavol; set work.test; total = sum(class,eco); if upcase(dest) =‘DFW’ then do; revenu=sum(1500*first,900*eco); city=‘Dallas’; end; else if upcase(dest) =‘LAX’ then do; revenu=sum(2000*first,1200*eco); city=‘Los Angeles’; run;
88
Longueurs de variable Au moment de la compilation, la longueur d’une variable est définie la première fois qu’elle est lue. data Cavol; set work.test; total = sum(class,eco); if upcase(dest) =‘DFW’ then do; revenu=sum(1500*first,900*eco); city=‘Dallas’; /* 6 caractères Longueur=6*/ end; else if upcase(dest) =‘LAX’ then do; revenu=sum(2000*first,1200*eco); city=‘Los Angeles’; run;
89
L’instruction LENGTH Vous pouvez utiliser l’instruction LENGTH pour définir de façon explicite la longueur d’une variable. Format général de l’instruction LENGTH : LENGTH variable(s) $ longueur; Exemple : length City $ 11;
90
L’instruction LENGTH data Cavol; set work.test; length city $ 11;
total = sum(class,eco); if upcase(dest) =‘DFW’ then do; revenu=sum(1500*first,900*eco); city=‘Dallas’; /* 6 caractères Longueur=6*/ end; else if upcase(dest) =‘LAX’ then do; revenu=sum(2000*first,1200*eco); city=‘Los Angeles’; run;
91
Création de sous-ensembles de rangées
Dans une étape DATA, vous pouvez créer des sous-ensembles de rangées (observations) dans une table SAS à l’aide d’une instruction WHERE d’une instruction DELETE d’une instruction de création de sous-ensembles IF. L’instruction WHERE dans une étape DATA est la même que l’instruction WHERE que vous avez vue dans une étape PROC.
92
Suppression / Sélection de rangées
Vous pouvez utiliser une instruction DELETE pour contrôler quelles rangées seront écrites dans la table SAS. Format général de l’instruction DELETE : IF expression THEN DELETE; Vous pouvez utiliser une instruction de sous-ensembles IF pour contrôler quelles rangées seront écrites dans la table SAS. Format général de l’instruction de sous-ensembles IF : IF expressions;
93
Exercices Sélectionnez les rangées qui ont une valeur TOTAL plus grande que 155.
94
Utilisation de constantes de date SAS
La constante ‘ddMMMyyyy’d (par exemple :’14dec2000’d) crée une valeur de date SAS à partir de la date indiquée entre guillemets. d : convertir la chaîne entre guillemets en une date SAS. Exemple : IF total gt 175 and Date lt ’14dec2000’d;
95
WHERE ou IF de création de sous-ensembles?
Utilisez une instruction WHERE et une instruction de création de sous-ensemble IF dans la même étape. data Cavol; set work.test; where Date lt ’14dec2000’d; length city $ 11; total = sum(class,eco); if upcase(dest) =‘DFW’ then do; revenu=sum(1500*first,900*eco); city=‘Dallas’; /* 6 caractères Longueur=6*/ end; else if upcase(dest) =‘LAX’ then do; revenu=sum(2000*first,1200*eco); city=‘Los Angeles’; run;
96
Exercices A partir de la SASHELP.CLASS.
1.Création de 2 tables HOMMES ET FEMMES. (à partir de la variable sex) 2. Création de 2 tables 14 et plus et les autres. (à partir de la variable age)
97
Concaténation de tables SAS
Objectifs Définir la concaténation Utiliser l’instruction SET dans une étape DATA pour concaténer deux tables SAS ou plus. Utiliser l’option de table RENAME= pour modifier le nom d’une variable Utiliser les instructions SET et BY dans une étape DATA pour imbriquer deux tables SAS ou plus.
98
Concaténation de tables SAS
Utilisez l’instruction SET dans une étape DATA pour concaténer des tables SAS. Format général d’une concaténation durant une étape DATA. DATA table-SAS; SET table-SAS1 table-SAS2; <autres instructions SAS> RUN;
99
OPTION de table RENAME Vous pouvez utiliser l’option de table RENAME= pour modifier le nom d’une variable. Format général de l’option de table RENAME= : SAS-data-set (RENAME=(old-name-1 = new-name-1 old-name-2 = new-name-2 …..)) Exemples : data newfa ; set fa1 fa2(rename=(JCode=Code)); Run;
100
Imbrication de tables SAS
Utilisez l’instruction SET avec une instruction BY dans une étape DATA pour imbriquer des tables SAS. Format général d’une imbrication dans une étape DATA : DATA table-SAS; SET table-SAS1 table-SAS2 … ; BY variable ; <autres instructions SAS> RUN; L’imbrication de tables SAS est simplement une concaténation de tables SAS ayant comme objectif de trier les observations dans la table résultante.
101
Fusion de tables SAS Objectifs
Préparer des données pour la fusion à l’aide de la procédure SORT et des options de tables Fusionner des tables SAS au moyen d’une seule variable commune
102
Fusion de tables SAS Utilisez l’instruction MERGE dans une étape DATA pour joindre des Observations correspondantes à partir de deux tables SAS ou plus. Format général d’une étape DATA de fusion avec correspondances : DATA table-SAS; MERGE table-SAS; BY variable(s); <autres instructions SAS> RUN;
103
Exercices Imbriquez les tables FA1 et FA2 par NOM. Créez 2 tables :
1. la table performance qui contient 2 champs : Month et Sales Months sera de type caractère Sales type numérique 2. la table Goals qui contient 2 champs : Month et Goal Goal type numérique Fusionnez les 2 tables par Month et calculez les différences entre la valeur des variables de Sales et Goal.
Présentations similaires
© 2024 SlidePlayer.fr Inc.
All rights reserved.