Analyser ses données écologiques en SAS

Dernière modification : 10/12/02

Quelques conventions SAS :

Le programme est composé d'un certain nombre d'instructions (statements) qui se terminent nécessairement par ; (point et virgule). Chaque instruction peut occuper plusieurs lignes physiques mais se termine toujours par un point et virgule.

Une instruction comporte des mots clés SAS (dans ce texte, ils seront en majuscules), des caractères spéciaux ou des noms choisis par l'utilisateur.

Exemple :

* Lecture des données;
DATA enfants;
INFILE "enfants.data";
INPUT nom $ 1-20 age 
      sexe $ taille poids;
IF age > 14 THEN DELETE ;
   
/* Réalisation d'un dessin de la taille (Y)
et du poids (X)  */     
PROC PLOT ; PLOT taille*poids;

Dans ce cas, on lit dans un fichier de données appelé "enfants.data" cinq variables (nom, age, sexe, taille et poids), on élimine les observations qui sont plus agées que 14 ans et on réalise un dessin.

Les commentaires sont placés entre /* et */ pour les commentaires internes à une ligne. Si toute la ligne est un commentaire, elle commence par * et se termine par ;. Ces deux opérateurs sont très utiles pour rendre inactif du code SAS, soit parce qu'on en a temporairement plus besoin ou qu'on souhaite faire sauter des blocs d'instructions.

Comment nommer les variables ?

Les noms donnés par l'utilisateur (en minuscule ci-dessus) doivent respecter un certain nombre de règles :

Prenez l'habitude de donner des appelations cohérentes et les plus complètes possibles à vos noms de fichiers et de varaibles.

Les variables peuvent être de deux types :

Comme le type des variables doit être absolument précisé (on ne fait pas les mêmes choses avec des variables numériques ou alphanumériques) et que lorsque SAS lit un fichier de type texte il ne reconnait pas seul le type des variables, il faut le préciser en ajoutant un "$" après la première désignation du nom de d'une variable de type texte. C'est l'exemple de "sexe $" identifié dans l'exemple ci-dessous.

Par défaut, les longueurs du contenu des variables sont de 8 caractères mais lors de la première désignation des varaibles, on peut modifier ces longueurs par défaut. C'est l'exemple de "nom $ 1-20" identifié dans l'exemple ci-dessous.

Le contenu des variables peut être vide (= pas d'informations). Il est défini par la valeur "." (point) pour les variables numériques et par un " " (caractère espace) pour les variables alphanumériques.

Quels sont les opérateurs disponibles ?

Les opérateurs sont des symboles qui commandent des opérations à effectuer sur des variables soit numériques, soit alphanumériques. Ces opérateurs peuvent être numériques, alphanumériques et de comparaison.

Les opérateurs numériques sont:

**

élève à la puissance

*

multiplie

/

divise

+

additionne

-

soustrait

Les expressions sont évaluées de gauche à droite mais les exponentiations sont calculées en premier lieu, puis viennent les multiplications et divisions, enfin viennent les additions et soustractions. Cet ordre de priorité peut être modifié par l'emploi de parenthèses: les expressions à l'intérieur de celles-ci sont effectuées en premier lieu. Ainsi,

16/2*4 donnera 32, mais

16/(2*4) donnera 2.

L'opérateur alphanumérique || provoque la concaténation, c'est-à-dire le collage de deux chaînes de caractères (si au moins la longueur de la variable qui stocke cette information le permet). Cet opérateur peut aussi êtrte remplacé par !!.

L'expression phrase ="C'EST"||"LA"||"VIE" donnera "C'ESTLAVIE".

Les opérateurs de comparaison sont

Opérateur
Synonymes

Signification

=
EQ

égal à

¬
NE

non égal à ou différent de

>
GT

strictement plus grand de

<
LT

strictement plus petit de

>=
GE

plus grand ou égal à

<=
LE

plus petit ou égal à

Si la comparaison est exacte, est vraie, l'expression est égale à 1, sinon elle vaut 0.

Les opérateurs de comparaison apparaissent fréquemment dans des expressions de comparaison :

IF x > y THEN z=5;
ELSE z=2;

On peut aussi comparer des chaînes de caractères entre elles. On sera très prudent à ce niveau sur les longueurs respectives des variables qui sont comparées (A vérifier : si station défini par défaut = "sta001", vérifier que IF station = "sta001" ou que IF station = "sta001....." ne fonctionne pas ou que IF station = "sta001....." )

Lorsqu'on compare deux chaînes de caractères, les caractères sont comparés deux à deux en commencant par la gauche et l'opération se termine dès que l'inégalité est satisfaite. Ainsi "ALBERT"<"VICTOR" est vrai puisque dès la première comparaison du A avec le V , l'inégalité est satisfaite. "BIDON"<"BIDULE" est vrai puisque le O est plus petit que le U. SAS ajoute des blancs derière le mot le plus court pour permettre la comparaison lettre à lettre.

Les options générales générales de présentation

L'instruction OPTION

SAS permet de définir une série d'options générale de présentation des résultats qui sont très utiles. Elles s'écrivent n'importe où dans le programme SAS mais ne commenceront à être active que pour la procédure ou du DATA step où elles ont été placées. On peut donc définir et redéfinir plusieurs fois les mêmes options au cours du même programme. La forme générale de l'instruction est : OPTIONS suivi d'une série d'options; Par exemple :

OPTIONS PAGESIZE=80 LINESIZE= 80; 

Les options possibles sont :

ALTLOG = filename défini un fichier dans lequel le journal de bord de l'exécution (log) peut être aussi écrit

ALTPRINT = filename défini un fichier dans lequel les résultats des procédures peuvent être aussi écrits

CENTER centre les résultats au milieu de la page (= par défaut). A priori, on préfére généralement les aligner à gauche; on utilisera donc l'option NOCENTER

DATE imprime la date sur chaque page de listing (= par défaut). On peut éliminer cette mention avec l'option NODATE

LINESIZE = nn défini en nombre de caractères (ou colonne) (nn) la largeur de la page du fichier de résultats (listing)

MPRINT imprime sur le fichgier log les lignes de programmes contenues dans des macros. Utile seulement pour l'élaboration de macros.

NOTES inscrit sur le journal de bord les notes de suivi générées par le programme SAS (= par défaut). NONOTES les supprime.

NUMBER imprime le numéro de la page sur chaque page de listing (= par défaut). On peut éliminer cette mention avec l'option NONUMBER

PAGESIZE = nn défini en nombre de lignes (nn) la longueur de la page du fichier de résultats (listing).

SOURCE inscrit sur le journal de bord les lignes du programme SAS (= par défaut). NOSOURCE les supprime.

SYMBOLGEN remplace les paramètres des macros par les valeurs des variables. Utile seulement pour l'élaboration de macros.

L'instruction TITLE

Permet de définir un titre sur les pages de listing. Les titres apparaissent sur les listings des procédures auquel ils sont associés et ils peuvent être redéfini d'une procédure à l'autre.

TITLE "Impression des données";
PROC PRINT;
RUN;
   
TITLE "Résultats de l'analyse des corrélations";
PROC CORR; VAR var1 var2;
RUN;

S'il n'y avait pas de RUN; après le PROC PRINT, le titre associé à cette procédure serait le second et non le premier ...

Il peut il y avoir jusqu'à 10 titres !

TITLE1 "Données de ma thèse"; 
TITLE2 "Impression des données"; 

L'instruction FOOTNOTE

Suit le même principe que le titre.

FOOTNOTE "Essai numéro 001";

Les FORMATS de lecture et de présentation des données

(à compléter)

[Introduction] [Conventions SAS] [DATA step] [Fonctions] [Procédures de base]