top of page

CONDITIONS

Il est parfois utile de sélectionner juste certaines observations parmi les données d'une table. Pour cela, on utilise le mot clé WHERE. Cela va ajouter un filtre à la table.

DATA table2;

SET table1 (WHERE=(age>18)); /* Ne sélectionne que les individus de plus de 18 ans. */

RUN;

À savoir qu'avec l'instruction SET, on peut d'autres choses très utiles comme modifier la valeur d'une variable.

DATA table1;
SET table1 (rename = (Var1=Temporaire));
/* On renomme la variable nommée Var1 en Temporaire. */
Var1= Temporaire/1000; /* On crée une nouvelle variable nommée Var1 (résultat d'un calcul) */
DROP Temporaire; /* On supprime la variable d'origine nommée Temporaire. */
RUN;

Cela permet de remplacer un remplacer une variable par un calcul.

SAS permet d'effectuer des tests grâce aux instructions IF, THEN et ELSE.

DATA table2;

SET table1;

IF missing(age) THEN classe_age="." ; /* Si la donnée est manquante alors on affiche un point pour la variable classe_age. */

ELSE IF (age<= 18) THEN classe_age="Classe 1";

ELSE IF (age<=25 AND age>18) THEN classe_age="Classe 2"; /* Si l'âge est de 19 (car strictement supérieur à 18) à 25 ans inclus alors on affiche Classe 2 pour la variable classe_age. */

ELSE IF (age<=55 AND age>25) THEN classe_age="Classe 3";

ELSE classe_age="Classe 4"; /* Si aucune des conditions précédentes n'ai réalisé alors on affiche Classe 4 pour la variable classe_age. */

RUN;

OUPUT est une instruction utile car elle permet de mettre une ou plusieurs données dans une table.

DATA semestre1 semestre2 error; /* Crée 3 tables. */
SET vente; /* Utilise les données contenues dans la table vente. */
IF (mois<=6 AND 1<=mois) THEN OUTPUT semestre1; /* Met les données des mois de 1 à 6 dans la table nommée semestre1. */
ELSE IF (mois<=12 AND 7<=mois) THEN OUTPUT semestre2; /* Met les données des mois de 7 à 12 dans la table nommée semestre2. */
ELSE OUTPUT error; /* Sinon pour les valeurs aberrantes (mois=0 par exemple), met les données dans la table nommée error. */
RUN;

Une autre possibilité pour effectuer des tests est d'utiliser les instructions IF, THEN DO et ELSE.

DATA table2;

SET table1;

IF (age<=25 AND age>18) THEN DO;

classe_age="Classe 2"; /* On met les actions que l'on souhaite faire entre le THEN DO; et le END; */

END;

ELSE IF (age<=55 AND age>25) THEN DO;

classe_age="Classe 3";

END;

ELSE

classe_age="Classe 4";

RUN;

bottom of page