Nettoyage de masse : Comment remplacer un code d'erreur (ex: 999) par une valeur manquante partout ?

Cet article en deux mots :

Marre des instructions IF/THEN répétitives pour traiter vos données manquantes ? Découvrez comment automatiser le nettoyage de vos tables SAS en utilisant la puissance des tableaux et du mot-clé NUMERIC. En quelques lignes de code, apprenez à transformer vos valeurs aberrantes sur l'ensemble de vos variables numériques pour gagner en efficacité et limiter les erreurs de saisie.

Le Problème Vous héritez d'une base de données où les valeurs manquantes ont été codées par un chiffre spécifique (comme 999 ou 9999) dans plusieurs colonnes numériques. Modifier chaque variable manuellement avec des IF/THEN serait long et source d'erreurs.


La Solution Vous pouvez traiter toutes les variablesColonnes d'une table SAS contenant des données spécifiques (numériques ou caractères). Elles possèdent des attributs comme le nom, le type, la longueur, l'étiquette et le format d'affichage. numériques d'un seul coup grâce au mot-clé magique _NUMERIC_ associé à un tableau (ARRAY).

1
2
3
4
5
6
7
8
data Num_missing;
set Demographic;
array Nums [*] _numeric_;
do i=1 to dim(Nums);
if Nums[i]=999 then Nums[i]=.;
end;
drop i;
run;

En Bref

  • Le mot-clé _numeric_ capture automatiquement toutes les variablesColonnes d'une table SAS contenant des données spécifiques (numériques ou caractères). Elles possèdent des attributs comme le nom, le type, la longueur, l'étiquette et le format d'affichage. numériques de votre jeu de données dans le tableau Nums.
  • L'astérisque [*] demande à SAS de compter lui-même le nombre de variablesColonnes d'une table SAS contenant des données spécifiques (numériques ou caractères). Elles possèdent des attributs comme le nom, le type, la longueur, l'étiquette et le format d'affichage. pour dimensionner le tableau.
  • La fonction dim() permet à la boucle DO de parcourir exactement le bon nombre de colonnes.
  • Astuce bonus : Cette même technique fonctionne pour les variablesColonnes d'une table SAS contenant des données spécifiques (numériques ou caractères). Elles possèdent des attributs comme le nom, le type, la longueur, l'étiquette et le format d'affichage. texte avec le mot-clé _CHARACTER_!


Nicolas Housset

Passionné d'informatique, je suis Consultant et expert technique SAS VIYA, également co-fondateur de la société Flexcelite. Spécialisé dans les technologies SAS (Viya, 9.4) et les infrastructures associées (Linux, Hadoop, Azure), ce blog est mon espace pour partager mes mémos techniques et retours d'expérience.