On rappelle que la programmation élémentaire sous SAS prend deux formes : soit celle d'une étape DATA, dans laquelle on modifie, recopie, manipule des données, soit celle d'une étape PROC, qui souvent (mais pas toujours) sert au traitement des données.
La présentation de chacune des procédures des parties V et VI ci-après suit le schéma suivant :
Toute étape PROC commence par le mot-clé PROC suivi du nom de la procédure : XXX. Il est possible
de mettre à cet endroit ce que l'on appelle des options de la PROC XXX. Cela est facultatif (d'où
les < ... >) et les éventuelles options sont séparées par un blanc.
Une des options (commune à de nombreuses procédures) les plus connues est l'option data= . Elle
permet de préciser à la PROC la table sur laquelle on va travailler.
Enfin on met un point-virgule.
Puis vient le corps de la procédure, constitué obligatoirement d'une succession d'instruction
choisies parmi les instructions de la procédure.
Par exemple, un test de type IF a=0 THEN delete ; n'a rien à faire dans une PROC !! Par contre on
pourra utiliser l'instruction WHERE. Chaque instruction commence par un mot-clé et termine par un
point-virgule.
Beaucoup d'instructions offrent des options. Il faut alors séparer l'instruction de la liste des
options qui s'y rattachent par un /.
Remarque : Si on enchaîne plusieurs étapes PROC, un seul run ; à la fin de toutes suffit.
Remarque 2 : Après certaines procédures, on doit mettre un quit ; C'est le cas avec des procédures qui font appel à des modules particuliers, telles les PROC GCHART et GPLOT ou la PROC SQL par exemple. Si l'on omet le QUIT, la table, ouverte par le module, n'est pas fermée, et cela peut générer des erreurs.
Nous avons déjà évoqué l'option data= . Rares sont les PROC qui ne l'acceptent pas (l'exemple type étant la PROC FORMAT). Notons qu'en l'absence de cette option, la procédure travaille sur la dernière table créée.
Une autre option répandue est l'option noprint, qui demande à ce qu'aucune sortie ne soit imprimée dans l'output. Elle évite de surcharger cette dernière lorsque le besoin ne s'en fait pas sentir (par exemple si on a stocké les résultats dans une table ou si on a exporté la sortie avec l'ods).
L'instruction VAR permet (dans les procédures où elle apparaît) de
préciser sur quelles variables on travaille.
On la retrouve notamment dans les procédures MEANS, UNIVARIATE, CORR... Elle est donc surtout associée
à des traitements de variables quantitatives. Ainsi, elle n'apparaît pas dans la PROC FREQ (qui
utilise l'instruction TABLES), ni dans les procédures de modélisation (qui
utilisent l'instruction MODEL).
L'instruction BY permet de constituer des sous-populations.
Lorsqu'une instruction BY mavar ; est spécifiée dans une PROC, cela force la réalisation d'autant
d'étapes PROC qu'il y a de modalités de mavar.
Remarque : Ne pas confondre avec l'instruction CLASS qui permet de distinguer
des sous-groupes à l'intérieur d'une même étape PROC.
Exemple : on suppose que mavar a comme moyenne générale 10, comme moyenne sur la sous-population
des hommes 14 et comme moyenne sur la sous-population des femmes 09. Admettons qu'on veuille faire
un test d'égalité des moyennes. Le programme PROC TTEST ; VAR mavar ; CLASS sexe ; compare bien 09
à 14, tandis que le programme PROC TTEST ; VAR mavar ; BY sexe ; va essayer d'abord de comparer 09
à 09, puis de comparer 14 à 14.
L'instruction OUTPUT, qui permet de stocker certains des résultats dans une
table.
La syntaxe est alors OUTPUT OUT=table_sortie Keywords ; on précise le nom de la table dans
laquelle seront stockés les résultats des statistiques dont les mots-clés sont précisés
(liste Keywords).
Notons qu'il existe de nombreuses options du type out= qui ont le même but mais
sont adaptées à un cas précis.
On retrouvera aussi fréquemment deux instructions déjà vues en étape DATA :
1 : Procédure MEANS qui s'applique à la table donnees de la librairie Work.
2 : Les variables étudiées sont var1 et var2.
3 : On calcule les stats sur les sous-populations définies par les modalités de cat.
4 : On exclut de l'étude les observations pour lesquelles cat vaut 'sans réponse'.
5 : On récupère dans une table moyennes la moyenne de chacune des variables sur chacune des sous-populations ; on appelle moy1 la moyenne de var1 et moy2 la moyenne de var2.