top of page

OPÉRATIONS SUR VARIABLES

-

PROCÉDURES USUELLES

Pour modifier des variables, il est préférable de créer une nouvelle table contenant les données de la table initiale. Pour cela on fait appel à l'instruction SET.

On peut aussi rajouter les options KEEP ou DROP, pour garder ou supprimer certaines variables.

DATA table2;

SET table1(DROP = date id); /* Copie de la table1 dans la table2. Suppression des variables date et id. */

var3=var1+var2; /* var3 est égale à l'addition de var1 et de var2. */

var4=ROUND(var3,0.01); /* var4 est égale à la valeur arrondie au centième de var3. */

id=_N_; /* Crée la variable id. Sa valeur correspond au numéro de la ligne.

​RUN;

Maintenant que vous connaissez la méthode pour modifier des variables, vous devez connaître les principaux opérateurs et fonctions de SAS.

Principaux opérateurs :

- Opérateurs arithmétiques : addition (+), soustraction (-), multiplication (*), division (/) et puissance (**).

- Opérateur de comparaison : inférieur (<), inférieur ou égal (<=), supérieur (>), supérieur ou égal (>=), égal (=) et différent de (^=).

- Opérateurs booléens : Ou (Or ou / ou |), Et (AND ou &).

- Opérateur sur chaînes de caractères : concaténation (|| ou !!).

Principales fonctions :

- Fonctions mathématiques : arrondi (ROUND), valeur absolue (ABS), partie entière (INT) et racine carrée (SQRT).

- Fonctions statistiques : maximum (MAX), minimum (MIN), moyenne (MEAN), somme (SUM), variance (VAR), médiane (MEDIAN), nombre de valeurs manquantes (NMISS) et nombre de valeurs non manquantes / effectif (N).

- Fonctions chaînes de caractères : longueur de la chaîne de caractères (LENGTH), conversion en   majuscule (UPCASE) et en minuscule (LOWCASE), extraction de caractères (SUBSTR) et compte le nombre de mots (COUNTW).

- SUBSTR : sert à diviser une chaîne de caractères en deux sous-chaînes ou plus. SUBSTR possède 3 paramètres : la variable chaîne de caractères, la position du premier caractère pris en compte et la longueur de la sous-chaîne souhaitée.

Si le troisième paramètre n'est pas renseigné, SUBSTR prendra comme longueur tous les caractères de la chaîne à partir du premier caractère pris en compte (renseigné via le deuxième paramètre).

DATA table2;

SET table2

souschaine1=SUBSTR(chaine, 1, 3); /* Crée la variable souschaine1 qui aura les 3 premiers caractères de la variable nommée chaine. */

souschaine2=SUBSTR(chaine, 4); /* Crée la variable souschaine2 qui aura tous les caractères de la variable nommée chaine à partir du 4ème et cela jusqu'à la fin de la chaîne. */

​RUN;

- RENAME : sert à renommer une variable.

DATA table;

SET table;

RENAME ancien_nom = nouveau_nom; /* Renomme la variable ancien_nom en nouveau_nom. */

RUN;

- INPUT : sert à créer une variable numérique à partir d'une variable caractère. Elle prend deux paramètres : la variable caractère puis l'informat de la variable numérique souhaitée. 

DATA table;

SET table

var_num = INPUT(var_char, 10.5); /* Convertit var_char en une variable numérique dont son informat est 10.5 (10 chiffres dont 5 après à la virgule). */

​RUN;

L'informat numérique comma9. peut aussi être pratique car il permet de gérer les nombres à virgule qui sont sous forme de chaîne de caractères.

Enfin, vous pouvez rajouter le symbole ? ou ?? devant l'informat pour supprimer certains messages d'erreurs.

- PUT : fait l'inverse de INPUT, sert à créer une variable caractère à partir d'une variable numérique. Elle prend deux paramètres : la variable numérique puis l'informat de la variable caractère souhaitée. 

DATA table;

SET table

var_char = PUT(var_num, :$20.); /* Convertit var_num en une variable caractère dont son informat est :$20. (maximum 20 caractères). */

​RUN;

Les procédures (PROC) servent à l'analyse des données des tables. Voici quelques procédures pratiques et utiles dans SAS :

- PRINT : pour afficher le contenu d'une table dans la fenêtre de sortie.

TITLE1 "Affichage d'une table"; /* Ajout d'un titre. */

TITLE2 "Table : table1"; /* Ajout d'un sous-titre sur la ligne en dessous du titre. */

PROC PRINT DATA=table1 (firstobs=2 obs=20); /* Affichage des lignes 2 à 20 de la table1. */

RUN;

Avec PRINT, on peut aussi rajouter les options KEEP ou DROP, pour garder ou supprimer certaines variables mais aussi l'option WHERE pour sélectionner juste certaines valeurs.

Enfin, on peut mettre l'option label pour afficher le libellé (description) des variables et non leurs noms.

 

PROC PRINT DATA=table1 (WHERE=(age>18)) label; /* Affichage des labels (à la place du nom des variables) et des lignes de la table1 correspondant à la condition. */

RUN;

 

- SORT : pour trier les données d'une table en fonction d'une ou plusieurs variables.

PROC SORT DATA=table1 OUT=table2; /* Sauvegarde du tri de la table1, par rapport à la variable nommée nom, dans la table2. */

BY nom;

RUN;

- RANK : pour calculer les rangs d'une variable.

- TRANSPOSE : pour transposer les lignes et les colonnes d'une table.

PROC TRANSPOSE DATA=table1 OUT=table2; /* Transposition de la table1 (échange lignes et colonnes) et enregistre le résultat dans la table2. */

RUN;

- CONTENTS : pour obtenir des informations sur une table (nombre de lignes, nombre de variables, ...)

PROC CONTENTS DATA=table1;

RUN;

- MEANS ou UNIVARIATE : analyse des statistiques pour une variable quantitative (nombre d'observations (n), nombre de données manquantes (nmiss), minimum (min), maximum (max), moyenne (mean), écart-type (std), variance (var), médiane (median), nème quartile (Qn), nème centile (Pn) ...).

On utilise l'option VAR pour indiquer la ou les variables quantitatives à analyser. On peut aussi rajouter l'option CLASS (pas obligatoire) pour segmenter l'analyse par rapport à une variable qualitative.

Par exemple, on souhaite calculer la moyenne, la variance, l'écart-type et la 3ème quartile de la taille (variable quantitative) chez les femmes et les hommes (par rapport à la variable qualitative sexe). On devra donc écrir le code suivant.

PROC MEANS DATA=table1 MEAN VAR STD Q3 maxdec=2; /* Si on ne précise pas de statistiques en particulier, on va avoir l’ensemble des statistiques quantitatives. */

VAR taille; /* Variable quantitative à analyser. */

CLASS sexe; /* Selon une variable qualitative. */

RUN;

L'option maxdec permet de préciser le nombre de décimales que l'on souhaite avoir pour les statistiques calculées.

- FREQ : analyse des statistiques pour une variable qualitative (effectifs, fréquences, ...). On utilise l'option TABLES pour indiquer les ou les variables qualitatives à analyser.

PROC FREQ DATA=table1;

TABLES sexe;

RUN;

- SGPLOT (nuage de dispersion), CHART (diagramme en barres), BOXPLOT (boîte à moustaches) : pour créer un graphique, un histogramme, une boîte à moustaches, etc ...

Lien vers les différents codes des graphiques :

- REG et GLM : deux procédures utiles pour la modalisation de modèles faisant intervenir différentes variables (étape d'une analyse statistique).

- SQL : pour exécuter du code SQL.

PROC SQL;
code SQL;

RUN;

Attention, le point virgule du code SQL doit être placé à la fin du code et non à la fin de chaque ligne.

Exemple :

PROC SQL;

CREATE TABLE table2 AS

SELECT var1, var2, var3

FROM table1

WHERE ... ;

QUIT;

Si vous voulez en apprendre plus sur le langage SQL, vous pouvez aller voir mes fiches sur ce langage.

Enfin, si vous cherchez des informations sur d'autres procédures, vous pouvez aller sur le support de SAS.

SAS_logo_horiz.svg.png
bottom of page