h1

Qui a la priorité : RETAIN ou SET ?

mars 30, 2010

L’instruction RETAIN permet d’assigner une valeur à une variable.  La valeur est reconduite à l’observation suivante à moins d’être changée par une autre instruction au cours de l’étape data.

Le point à retenir dans cet article est que si la variable existe déjà, RETAIN ne va pas pouvoir réécrire la valeur.

Afin de représenter cette logique dans son programme, il peut-être conseillé d’écrire l’instruction RETAIN avant une instruction qui lie de nouvelles données ; SET par exemple.

1. Voir la logique

La variable qui existe dans le fichier d’origine : dans cet exemple, on voit que la variable AGE qui existe dans le fichier d’origine SASHELP.CLASS n’est pas changée par l’instruction RETAIN.

La variable qui n’existe pas avant : par contre la variable AGE2 qui n’existe pas dans le fichier d’origine prend bien la valeur donnée dans l’instruction RETAIN.

data class;
set sashelp.class;
retain age 0 age2 0;
run;

proc print data=class noobs;
run;

2. Etre logique

Afin de respecter cette logique, l’instruction RETAIN est à placer avant l’instruction SET.

data class;
retain age 0 age2 0;
set sashelp.class;
run;

proc print data=class noobs;
run;

Lectures complémentaires

SAS Online Doc

  • RETAIN Statement

One comment

  1. […] Qui a la priorité : RETAIN ou SET ? (article protégé : devenez correspondant ou écrivez un article pour obtenir le mot de passe) […]



Votre commentaire

Entrez vos coordonnées ci-dessous ou cliquez sur une icône pour vous connecter:

Logo WordPress.com

Vous commentez à l’aide de votre compte WordPress.com. Déconnexion /  Changer )

Photo Facebook

Vous commentez à l’aide de votre compte Facebook. Déconnexion /  Changer )

Connexion à %s

%d blogueurs aiment cette page :