Note Informatique SAS - Notes de cours Cours SAS PDF

Title Note Informatique SAS - Notes de cours Cours SAS
Course Informatique de gestion
Institution Université de Versailles Saint-Quentin-en-Yvelines
Pages 23
File Size 1.6 MB
File Type PDF
Total Downloads 102
Total Views 134

Summary

Logiciel SAS / Codage
Mr Hervé NSEKE EBELE...


Description

Note Informatique (SAS) http://192.168.206.128 Pour créer un dossier : clic droit là où on veut créer le dossier => nouveau => dossier

On télécharge le dossier créer sur notre ordinateur : on se fait sur « Ficin » clic droit => télécharger les fichiers… => et là on va chercher le dossier sur l’ordinateur :

Quand on ouvre un nouveau dossier sur SAS, on aura toujours la structure suivante :   

Code : où on écrit le programme Journal : compte rendu d’exécution. Plus communément on appelle cela LOG Résultats : output

Pour créer une nouvelle feuille on fait F4 :

Instruction sous SAS : 1



Il ne faut surtout pas oublier le point-virgule à la fin des formules, c’est le point de repère pour SAS !



LIBNAME : nom du répertoire, libref qui est un nom de raccourcie que l’on choisit et il va pointer vers un répertoire. Libref = « Chemin complet du répertoire » ; Exemple : on crée un raccourcie « Folders/myFolders/ac/bases », et je l’appelle base ici :

Pour vérifier si cela est bon on appuie sur F3 pour exécuter et qu’il dise ce qu’il a compris.

Cela ne fonctionne pas car l’adresse entre guillemets n’est pas la bonne. Donc là on va sur base est on fait clic doit => propriété et on a l’adresse exact à mettre entre guillemets : et si on refait on obtient :

2



Et là cela fonctionne. FILENAME [le nom du fichier] « /chemincomplet/nomfichier.extension » ; On va donc tester cette formule qui consiste à faire un lien vers le fichier envoyé par mail :

Pour voir le fichier on peut aller dans « raccourcis de fichiers » et on double clic sur le fichier :



/* commentaire */ c’est l’écriture pour faire des commentaires et SAS nous le remettra tel quel comme cela.

Pour travailler sous SAS, seulement deux méthodes : 

Etape DATA



Ou Procédure

3

Etape DATA : cela permet de créer la base SAS, la syntaxe de façon générique c’est : DATA libref.nom table SAS à créer ; Ici libref va indiquer le lieu de stockage, soit qui fait référence à un chemin qu’on a créé au préalable. Le nom de la table SAS commence forcément par une lettre ou un caractère souligné. Il existe 4 façons de créer une table SAS : 

A partir de rien, on peut créer la table, avec l’instruction CARDS : DATA libref.nom de la table SAS à créer Ensuite on créer la structure de la table : INPUT NomVariable1 Type Variable1… Nom Variable n Type Variable n Type de variable peut être numérique ou alphanumérique. Si on veut de l’alphanumérique il faudra mettre le $, si on ne met rien cela signifie que la variable sera exclusivement numérique. Ensuite on remplit la base de données, on indique par ligne les valeurs que l’on souhaite attribuer : CARDS ; ____ ____ … ____ ; On doit positionner ensuite un ; en début de ligne suivante. Puis on finit par : RUN ; Exemple : DATA A ; INPUT NOM $ AGE ; CARDS; Alice 26 Marc 19 Julie 20 ; RUN;

Si on ne précise pas d’où la base provient alors on créera une base temporaire, on peut aussi écrire work pour le temporaire. 

Autre façon de créer une table avec la méthode OUTPUT :

4

DATA libref.Nom table SAS à créer LENGTH pour définir la longueur maximum des variable sinon cela ne marchera pas Nom variable 1 = valeur 11 ; … ; Nom variableP1= valeur P1 ; OUTPUT ; …. Nom variable 1=valeur 1n ; … ; Nom variable P=valeur Pn ; OUTPUT ; RUN ; Exemple : DATA A ; LENGTH NOM $10 AGE 4; Nom= « Alice » ; AGE=26 ;OUTPUT ; Nom= “Marc”; AGE=19; OUTPUT; Nom= “Julie”; AGE=20; OUTPUT; RUN; 

A partir d’une table SAS exigeante: DATA libref1.nom table SAS à créer ; SET libref2.nom table SAS; RUN;

Questions: 1. Créer une table SAS temporaire, nommée FISH1, à partir de la table SAS, FISH, stockée dans la bibliothèque SASHELP. 2. Créer une table SAS temporaire, nommée FISH2, stockée dans ac/bases, stockée dans FISH1 3. Créer une table SAS temporaire, nommée FISH3, stockée dans ac/tmp, stockée dans FISH2 Application :



A partir d’un fichier externe : IMPORTATION

5

Filename filref « chemin complet du dossier/nom du fichier/extention » ; => (pour aller chercher le fichier) DATA libref.Nom de la table SAS à créer ; INFILE Fileref ; Input NomVariable1 Type Variable 1 … Nomvariablen TypevariableP ; RUN; Rappel: si on a juste du numérique type = rien de special, s’il est alpha numérique on met “$”.

Il existe 4 procédures, qui répondent à un besoin très précis : Une étape PROC est construite par le mot clef PROC suivi du nom de la procédure . L'instruction PROC se termine par un point-virgule. PROC nom de procédure options DATA=nom de table (options);paramètres ;RUN ; 

La procédure CONTENTS : elle permet de lister les caractéristiques d'une tables SAS (ou de l'ensemble d'une "librairie"). Proc contents DATA=nom de table; Proc contents DATA=libref._all_; RUN;

En cliquant sur le bonhomme qui court en haut à gauche, on obtient alors:

6

La procédure FORMAT permet de construire ses propres formats d'impression. Le format peut aussi être utilisé en lecture et en écriture. Il permet des recodifications avec la fonction PUT. Proc format [library=nomlib] [fmtlib]; value nom 'valeur1' = 'label1' 'valeur2'='label2' .....; => Value typedeformat Nomduformat ; Valeurinitale = valeur 1 nouvelle … Valeur initiale = valeur p finale ; RUN ;



Utiliser le '$' pour définir un format alphanumérique. On a par exemple H pour Homme et F pour femme :

7

La procédure SORT permet de trier une table SAS sur une ou plusieurs variables, par contre on ne garde pas la table initiale : PROC SORT data=libref.nom table SAS à trier ; BY nom variable1… nom variable p ; RUN ; Autre façon de faire pour garder la table initial tel quelle et trier la nouvelle base :



PROC SORT data=libref.nom table SAS à trier OUT=libref.nom2 ; BY nom variable1… nom variable p ; RUN ;



La procédure PRINT permet d'imprimer une table SAS. Proc print DATA= libref.Nom table SAS ; ID nom de la 1ère variable; VAR nom variable 1 nom variable 2…; SUM nom variable 1 nom variable 2… ; BY liste des variables; PAGEBY BY-variable; RUN;

Remarque pour utiliser BY il faut d’abord avoir trié la base de donner pour pouvoir l’utiliser. Pour changer de page, à chaque modalité (exemple : une page avec tous les hommes puis une page avec tous les hommes), on utilise PAGEBY, qui a la même obligation que BY pour l’utiliser la table doit d’abord être trié.

8

Exercice fichier document :

TD1_SAS_2016_2017,

questions

à

la

fin

du

1. Créer une table SAS à partir du fichier externe ‘TD1.TXT’. On télécharge le fichier TD1 sur SAS, puis :

On décide d’appeler le dossier téléchargé : « fichier ». On nomme la table « AVION ». On a rajouté DIM= « 09 »x, car DLM correspond à un délimiteur et dans notre fichier il y a un espace entre chaque variable, pour que SAS s’y retrouve au moment où il récupère les données, on écrit DLM = « 09 »x. 09 correspond à la tabulation, si c’était des pointsvirgules, le code serait : DLM= « ; ».

2. Afficher la table créée à l’aide de la procédure PRINT.

3. Supprimer le décompte des observations. La variable VOL remplacera la variable. OBS. Ne conserver à l’affichage que les variables VOL, DEST, RESERVE et REVENU.

9

4. Restreindre l’affichage aux vols n°271. On est revenu sur la 4 après avoir été jusqu’à la question 7. Il existe 2 façons différentes de faire : Méthode 1 : en décomposant DATA Filtre ; SET AVION ; WHERE VOL=”271”; RUN ; PROC PRINT DATA=Filtre; RUN; Méthode 2: en une seule étape: PROC PRINT DATA=AVION ; WHERE VOL= « 271 » ; RUN;

5. Affichage du total pour les variables RESERVE et REVENU.

10

6. Affichage des sous-totaux de passagers et de revenu pour chaque vol.

D’abord on trie la base puis on fait la somme.

7. Même question que précédemment avec un sous-total par page.

11

8. Ajouter le titre suivant : ’ Aéroport International’ ‘Vols à destination de Londres et Paris’ Ajouter la note de bas de page : ‘Division Infocentre’.

12

Footnote => note de bas de page Cela donne :

9. Ajouter les intitulés suivants pour chaque variable : VOL DATE DEST RESERVE

   

Numéro de vol Date du vol Destination Nombre

REVENU



passagers Total des revenus

de

13

Cela donne :

10.Créer les formats suivants :  PAR Paris  Londres LON

14

 271 Airbus  821 Boeing Associer les formats créés respectivement aux variables DEST et VOL. Associer le format commax6. à la variable RESERVE et dollarx10. à la variable REVENU.

Attention, il y a bien un point après « $DEST » et « $COMP ».

15

On obtient alors :

Pour rajouter une nouvelle variable dans la base de données : DATA libref.NomtableSAS ; Nom vartiable= Fonction(paramètre) ; RUN ;

Quelques fonctions : 

CALCUL : o

Somme : SUM(Variable1, variable2, …, variable p) ;

o

Moyenne MEAN (Variable1, variable2, …, variable p) ;

o

Ecart type : STD (Variable1, variable2, …, variable p) ;



Pour générer une variable aléatoire : o

Loi statistique uniforme : UNIFORM(paramètre d’initialisation => celui qu’on veut c’est juste pour lancer le processus) ;

o

Varibale normale : NORMAL (paramètre d’initialisation => celui qu’on veut c’est juste pour lancer le processus) ;

16



DATE : la date référence pour SAS c’est le 1/01/1960 : o

Pour récupérer le mois : MONTH(date SAS)

o

Pour récupérer l’année : YEAR (date SAS)

o

Pour récupérer un intervalle de temps : INTCK (« Unité temporelle », date SAS initiale, date SAS finale) ; Unité temporelle ça peut-être en année « YEAR »

o

Pour récupérer la date du jour au format SAS : TODAY () ; DATE ()

o

Nous renvoyer une date au format SAS : MDY (mois, jour, année)

Exercice : 

Créer table SAS temporaire



VAR1= date du jour VAR2= 31/03/2010 VAR3=intervalle entre les 2 dates en année

Et cela affiche :

Les résultats correspondent au nombre de jours cela n’affiche pas la date exacte.

17

Dernière catégorie de fonction, liée au texte : 

Extraire une chaine de caractère : SUBSTR(Nom de variable, position d’extraction, longueur d’extraction) ; A savoir que le paramètre « longueur d’extraction » est facultative, si on le met pas, il va prendre jusqu’à la fin.



Extraire une sous chaîne de caractère dans une chaine de caractère : SCAN(Nom de variable, position d’extraction, délimiteur) ; Exemple ABC DEFGH IJ et on veut toujours récupérer le deuxième élément soit ici DEFGH : SCAN(« ABC DEFGH IJ », 2, « ») ;



Pour connaitre la longueur d’une chaine de caractères : LENGTH(Nom de la variable)



Répondre à une problématique de recherche : INDEX (Nom de la variable, « Caractère recherché ») ; Elle renvoi oui et la première position où elle l’a trouvée, et le nombre sera strictement positif, sinon c’est qu’elle l’a pas retrouvé et elle renvoi à 0.



Mettre en majuscule ou en minuscule : UPCASE (Nom variable) ; LOWCASE (Nom varibale) ;



Pour mettre à gauche ou à droite : LEFT(Nom variable) ; RIGHT (Nom variable) ;



Supprimer des espaces inutiles, notamment en fin de chaînes de caractères : TRIM (Nom variable) ;



Pour concaténer : !!; Exemple : VAR4=VAR1!!VAR2 ;

Commodité d’écriture, plutôt que d’écrire : SUM(VAR1, VAR2, …, VAR10) ; On peut écrire directement : =SUM(OF VAR1-VAR10) ; FILTRE : Pour conditionner le nombre d’individu présent dans notre base finale : 

IF logique ou Filtre implicite : Si on veut garder que les femmes dans une table : DATA FEMMES ; SET TOUS ;

18

IF SEX=2 ; RUN ; Et le filtre implicite, c’est : DATA nom table SAS à créer ; La partie création … ; IF condition ; RUN ; Cela sous-entend que si ma condition est vraiment et seulement si elle est vrai je l’afficherai dans ma base de données. 

IF comme instruction de contrôle : DATA nom d’une table SAS à créer ; La partie création… ; IF condition THEN traitement ; ELSE traitement ; RUN ;



On a aussi : DATA nom de table SAS ; IF condition THEN DO ; Traitement 1 ; Traitement 2; …; END; ELSE DO; Traitement 1; Traitement 2; … END; RUN;

Fichier: “TD2_2016_2017: Exercice 1: Le point correspond à une valeur manquante pour SAS

19

Pour arrondir un résultat il existe la fonction : ROUND (Les variables, Le degré d’arrondie)

Si on nous demande d’imprimer, il faut rajouter :

1ère méthode pour « anniversaire dans le mois en cours :

2ème méthode :

20

Question « Créer un état affichant la liste des salariés fêtant leurs dix ans d'ancienneté dans le mois en cours » :

Question « Créer une table contenant une observation par salarié avec une date de visite médicale que vous aurez générée aléatoirement au niveau du jour (xx032017). Vous utiliserez une distribution uniforme » : CEIL c’est pour avoir une partie entière qui est au moins 1

Attention il y a bien un point après le format ! Exercice 2 :

Créer une variable contenant les initiales des individus : DATA LISTE ; SET LISTE ; INIT=SUBSTR(SCAN(NOM, 2, « , »), 1, 1) !! « . » !!SUBSTR(NOM, 1, 1) !! « . » ; RUN ;

21

Afficher les individus dont Comment

peut-on

procéder

la fonction est analyste programmeur (AP). pour

que

l'individu

Farr

LUC

apparaisse

également ? PROC PRINT DATA=LISTE ; WHERE INDEX(FONCTION, « AP ») ; RUN ; On peut mettre ensuite en majuscule : PROC PRINT DATA=LISTE ; WHERE INDEX(UPCASE(FONCTION), « AP »)>0 ; RUN ; On peut aussi faire, si on veut mettre en minuscule : PROC PRINT DATA=LISTE ; WHERE INDEX(LOWCASE(FONCTION), « ap »)>0 ; RUN ; Le « >0 » c’est pour que ce soit positif. Exercice 3 : DATA USER; LENGTH name $20; INPUT name $1-20; CARDS; James R. Harrison Mary Richardson T. Masters Richard J. Thomas ; RUN;

Ce qu’on veut va ressembler à : USERID STUJRH

22

STUM? R STUT?M STURJT DATA USER ; LENGHT INIT1-INIT3 $1 ; RETAIN ALPHA « ABCDEFGHIJKLMNOPQRSTUVWXYZ » ; SET USER ; INIT1= SUBSTR(SCAN(NAME, 1, « »),1,1) ; INIT2= SUBSTR(SCAN(NAME, 2, « »),1,1) ; INIT3= SUBSTR(SCAN(NAME, 3, « »),1,1) ; IF INIT3= « » THEN DO ; INIT3=INIT2 ; INIT2= SUBSTR(ALPHA, CEIL(UNIFORM(0)*26),1) ; END ; USERID= « STU » !!INIT1 !!INIT2 !!INIT3 ; RUN ; CEIL garde uniquement la partie entière d’un nombre

23...


Similar Free PDFs