Académique Documents
Professionnel Documents
Culture Documents
DATA work.donnee ;
input nom $ groupe $ taille poids ;
Cards ;
Jean-philippe A 175 85
Claude B 167.5 75
Marie-christine B 190 92
Eric C . .
Carmino C 165 57
Etienne A 166 49.5
;
run ;
Proc Print data=work.donnee ; run ;
De façon générale, lorsque SAS lit des données spéciales il faut lui préciser un format
d'entrée (nommé informat) derrière le nom de la variable dans l'instruction INPUT.
Vous pouvez ensuite déclarer un format de sortie (format) qui est en général lié à
l'informat.
DATA work.donnee ;
informat nom $15. ;
input nom $ dat_entr date8. ;
cards ;
Jean-philippe 08JAN89
Claude 05FEB88
Marie-christine 02MAR90
Eric 31DEC95
Carmino 12APR75
Etienne 10JUL85
;
run ;
proc print data=work.donnee ; run ;
1. 4) Contrairement à ce qu'il semble, SAS a bien lu les dates (elles sont codées en interne
sous forme de nombre). Nous allons maintenant demander à SAS de les afficher
convenablement en donnant un format d'affichage. Introduisez l'instruction suivante
avant le cards :
dat_sort=dat_entr+900 ;
format dat_sort date8. ;
Vous obtenez :
2. 2) En utilisant la fonction TODAY() qui donne la date courante, calculez l'écart en jour,
puis en années entre la date d'entrée et la date d'aujourd'hui.
b) Comparez avec :
DATA WORK.NOTSTID ;
SET MOI.STID193 (KEEP=NOTEFR NOTEHIS NOTEMAT) ;
RUN;
DATA work.saufsexe ;
SET MOI.STID193 ;
DROP SEXE;
RUN;
DATA WORK.HOMME ;
SET MOI.STID193 ;
IF SEXE=1 ; on ne conserve que les individus dont SEXE=1
RUN ;
e) Comparez avec :
DATA WORK.HOMME ;
SET MOI.STID193 (where=(sexe=1));
RUN ;
DATA WORK.HOMMAT;
SET MOI.STID193 (KEEP=GROUPE NOTEMAT WHERE=(GROUPE='A' AND
NOTEMAT>10)) ;
RUN;
DATA WORK.PARTIE ;
SET MOI.STID193 (OBS=15) ; on ne conserve que les 15 premiers individus
RUN;
DATA WORK.EXTRAIT ;
SET MOI.STID193 (FIRSTOBS=100 OBS=106) ;
RUN;
DATA WORK.LESBONS ;
SET MOI.STID193 ;
IF MEAN(NOTEFR ,NOTEHIS,NOTEMAT)<12 THEN DELETE;
RUN;
4. 3) Cette fois enlevez tout ceux ayant au moins une note manquante :
DATA WORK.PRESENT;
SET MOI.STID193 ;
IF NMISS(NOTEFR ,NOTEHIS,NOTEMAT)>0 THEN DELETE;
RUN;
Data moi.stid193 ;
Set moi.stid193 ;
Taille_metre=taille/100 ;
Format taille_metre 4.2 ;
Label Taille_metre='Taille en M' ;
Run ;
Ce programme crée la variable taille metre qui est la taille en metre (taille/100). Cette
variable est ajoutée au fichier existant.
Data moi.stid193 ;
Set moi.stid193 ;
NOTEMAX=MAX(NOTEFR ,NOTEHIS,NOTEMAT) ;
NOTEMIN=MIN(NOTEFR ,NOTEHIS,NOTEMAT) ;
Run ;
data work.essai ;
*on va créer une variable identif de 4 caractères ;
length identif $4. ;
set moi.stid193 ;
identif=put(groupe,$1.) !!put(ordre,2.0) ;
keep identif groupe ordre sexe taille poids ;
run ;
4. 9) Supposons que les professeurs décident d'étendre cette manipulation à toutes les autres
notes !
Il est possible de répéter le programme précédent trois fois ; toutefois comme la
modification est identique, nous allons regrouper les trois variables dans un tableau.
Un tableau de variables est un mot clé avec un indice qui remplace un ensemble de
variables, en général de même type. Le tableau vous permet d'effectuer d'un seul coup
un même traitement à vos variables en utilisant leur nouveau nom dans une boucle par
exemple :