SAS : 3 Méthodes pour Calculer une Somme Cumulative (et le Piège du RETAIN à Éviter)

Ce code est également disponible en : Deutsch English Español
Niveau de difficulté
Débutant
Publié le :
Stéphanie

Le Conseil de l'Expert

Stéphanie
Spécialiste Machine Learning et IA.

La différence critique entre ces codes réside dans la gestion des données manquantes : la première méthode (addition simple avec RETAIN) transformera tout votre cumul en valeur manquante (.) dès qu'elle rencontrera un seul vide dans la variable age, alors que l'instruction de somme (code 2) et la fonction SUM (code 3) traitent automatiquement les valeurs manquantes comme des zéros sans briser la chaîne de calcul.

Ce script compare trois techniques pour calculer une somme courante (running total) de la variable 'age' issue de la table sashelp.class. Il démontre l'équivalence et les nuances entre l'instruction RETAIN combinée à une addition simple, l'instruction de somme SAS© (variable+expression) et l'utilisation de la fonction SUM avec RETAIN.
Analyse des données

Type : SASHELP


Les données proviennent de la table d'exemple standard SASHELP.CLASS.

1 Bloc de code
DATA STEP Data
Explication :
Utilisation de l'instruction RETAIN pour conserver la valeur de 'totage' d'une observation à l'autre, initialisée à 0, et ajout manuel de l'âge.
Copié !
1DATA totalage;
2 SET sashelp.class;
3 retain totage 0;
4 totage = totage+age;
5 RUN;
2 Bloc de code
DATA STEP Data
Explication :
Utilisation de l'instruction de somme (Sum Statement) 'variable+expression'. Cette syntaxe implique automatiquement un RETAIN et gère les valeurs manquantes comme des zéros pour l'accumulation.
Copié !
1DATA totalage;
2 SET sashelp.class;
3 totage+age;
4 RUN;
3 Bloc de code
DATA STEP Data
Explication :
Utilisation de la fonction SUM avec un RETAIN explicite. La fonction SUM ignore les valeurs manquantes, contrairement à l'opérateur '+' simple utilisé dans le premier exemple.
Copié !
1DATA totalage;
2 SET sashelp.class;
3 retain totage 0;
4 totage = sum(totage,age);
5 RUN;
Ce matériel est fourni "tel quel" par We Are Cas. Il n'y a aucune garantie, expresse ou implicite, quant à la qualité marchande ou à l'adéquation à un usage particulier concernant le matériel ou le code contenu dans les présentes. We Are Cas n'est pas responsable des erreurs dans ce matériel tel qu'il existe maintenant ou existera, et We Are Cas ne fournit pas de support technique pour celui-ci.