sujet - LITA
Transcription
sujet - LITA
SAS Cours 1 : Gestion des données Nous avons pris le parti ici de ne vous donner que peu de conseils et d’informations. Vous trouverez tout ce dont vous aurez besoin dans la documentation SAS (que vous devrez de toutes les façons apprendre à maı̂triser lors de vos utilisations futures du logiciel), sur l’internet (d’importantes ressources SAS y sont disponibles), ou, en désespoir de cause à votre enseignant. Les fichiers que l’on vous demandera de de télécharger sont tous disponibles là : http://lita.sciences.univ-metz.fr/~brucker/cours/SAS/ 1 Aperçu général du logiciel Manipulez un peu les fenêtres en votre présence : • explorateur, • résultats, • éditeur, • sortie, • journal. 1.1 Répertoire de travail Dans la fenêtre explorateur, créez-vous un nouveau dossier favori (il devra correspondre à un répertoire sur le disque dur où vous enregistrerez vos travaux SAS). Regardez dans le fenêtre journal ce que vous avez fait. 1.2 Bibliothèque Les bibliothèques SAS contiennent vos données. Créez-en une à vous, que vous appellerez comme vous voulez (c’est la votre après tout). 1 2 Lecture de fichiers 2.1 Importation d’un fichier Importez le fichier OCDE.xls. Sauvegardez la façon de faire (lorsque SAS vous le demandera) dans votre répertoire de travail et associez les données créées à votre bibliothèque. Cliquez droit sur le fichier et choisissez “Afficher colonnes”. Vous trouverez des informations sur : • le nom de chaque colonne, • son type (nombre ou texte), • sa longueur, • son format (format d’affichage. Nous y reviendrons), • son informat (format de lecture, nous y reviendrons aussi), • son label (différent de son nom.). Regardez les autres colonnes. Rendez cette table plus conviviale en remplissant les champs description par exemple. 2.2 Manipulation du fichier Ouvrez le fichier importé (il est dans votre bibliothèque) et changez le label de la première colonne pour quelque chose de plus significatif. Manipulez un peu les données (faites des tris, des recherches, ...) à l’aide des icônes et du menu “données”. En particulier : • trouver les pays dont l’alimentation est supérieur strictement à 20, • trouver les pays dont l’alimentation est supérieur ou égale à 20, • trouver les pays dont l’habillement est supérieur aux meubles. Comprenez toutes les possibilités (en particulier la signification des opérateurs du menu “where”). 2.3 Importation manuelle Faite l’importation du fichier “titanic.dat”. On choisira ici une formatation manuelle des données. Les données se comprennent ainsi : • class : la classe. 0 pour l’équipage et sinon de 1 à 3, • age : 0 pour les enfants et 1 pour les adultes, 2 • sex : les sexe 0 pour féminin, 1 pour masculin, • surv : 0 est mort, 1 à survécu. Question bonus : où est léonardo ? 2.4 importation d’un fichier via l’éditeur Nous allons maintenant utiliser l’éditeur pour importer nos propres fichiers. Cela ira à terme plus vite que les importations via le menu. Télécharger le fichier “departements.data” et recopiez (de façon intelligente) le programme ci-dessous dans l’éditeur : data maBibliotheque.departements; infile "Z:\mesTrucs\leSuperCoursSAS\departements.data"; input No NomDepartement : $30. NomRegion : $30. unNumero; run; Ensuite, exécutez le code en cliquant sur “soumettre”. Si vous deviez avoir des erreurs, elle sont consignées dans le journal. Lorsque le journal est (selon vous) trop plein n’hésitez pas en supprimer le contenu (menu “édition”, “supprimer tout”). Observez le résultat. Toute instruction dans SAS se termine par un “;”. Les instructions sont répartis en blocs. Ici nous avons créé un bloc data qui gère les entrées de données. Nous avons lu un fichier (commande infile) chaque ligne ayant 4 paramètres, deux de type numériques (lesquels ?) deux de type caractères (de combien de caractères maximum ?). La fin du bloc est déterminée par la commande run. Question subsidiaire. À quoi sert le “:” ? Essayez sans. En définitive aller voir l’aide de input (input statement) et trouver-y la réponse. 2.5 Afficher le résultat On pourra utiliser la commande print. Les commandes SAS se lancent via le mot-clé proc. proc print data=maBibliotheque.departements; run; Utilisez également la commande contents. À quoi peut-elle bien servir ? 3 Lecture de fichiers avancée Linstruction cards permet de rentrer des données dans un champ data. 3 3.1 Instruction cards data maBibliotheque.fich1; input var1 var2 $ var3; cards; 1.5 A 55 2.4 B 44 2.7 B 61 2.3 A 48 ; run; • l’instruction cards; doit être la dernière instruction non nulle de l’étape data • une seule instruction cards; par étape data • il faut terminer les données par une instruction nulle (;) Question : pourquoi n’a-t-on pas besoin ici de spécifier la longueur de la chaı̂ne de caractère ? 3.2 Fichiers spécifiques Voici quelques entrées cards. À vous de remplir le champ input. Vérifiez bien à l’aide de l’affichage des colonnes de vos données que vous avez les bons types. On veut regrouper les données par 3 variables : data maBibliotheque.fich1; input ; cards; 1.5 A 55 2.4 B 44 2.7 B 61 2.3 A 48 ; run; Toujours que 3 variables, le champ de caractère pouvant contenir des espaces. Vous proposerez 2 solutions. La première en utilisant les colonnes comme délimiteurs, la seconde en remarquant que les espaces dans les chaı̂nes de caractères sont uniques (deux espaces de suite) correspondent à des champs différents. data maBibliotheque.fich2; cards; 1.5 A ou B 55 2.4 B 44 2.7 B 61 2.3 A 48 ; run; 4 Encore pareil : data maBibliotheque.fich3; datalines; 1.5,A ou B,55 2.4,B,44 2.7,B, 61 2.3,A, 48 ; run; 4 Les formats On a déjà vu un format, ‘$30.’ qui désigne une chaı̂ne de 30 caractères. Il existe deux types de formats, les formats de lecture (que l’on donne à la commnde input ou bien par la commande informat) et la commande format qui gère l’affichage. Nous allons vous en montrer quelques-uns, ainsi que la manière d’en créer d’autres. 4.1 Les dates Exemple : DATA work.donnee; input nom $15. dat_entr date8.; cards; Jean-philippe 08JAN89 Claude 05FEB88 Marie-christine 02MAR90 Eric 31DEC95 Carmino 12APR75 Etienne 1JAN60 ; run; proc print data=work.donnee; run; Que s’est-il passé ? et maintenant en ajoutant : format dat_entr date8.; Conclusions ? Cerise sur le gâteau, en ajoutant les lignes suivantes après l’input : 5 dat_sort = dat_entr+900 format dat_sort date8.; Que s’est-il passé ? À faire : lisez le document là : http://www.ats.ucla.edu/stat/sas/ modules/dates.htm 4.2 Créer ses propres formats On utilise la commande format. Ainsi par exemple : proc format; value tropClas 0 = ’equipage’ 1 = ’les riches’ 2 = ’les pas si riches’ 3 = ’les pauvres’ ; run; proc print data=maBibliotheque.titanic; format Class tropClas.; title "soyons explicite"; run; À faire : lire et faire le document là http://www2.sas.com/proceedings/ sugi29/236-29.pdf 4.3 Changer de Formats On peut changer le format des données via “afficher colonne” (que l’on a déjà vu), ou grâce à l’éditeur : proc datasets library=maBibliotheque; modify ocde; format Alimentation 6.3; run; proc print data=maBibliotheque.ocde; run; 6