Standardiser la casse de vos variables texte en quelques lignes

Cet article en deux mots :

Marre des jointures qui échouent à cause d'une majuscule mal placée ? Découvrez comment automatiser l'uniformisation de vos données textuelles grâce aux tableaux SAS. En combinant la puissance des boucles ARRAY et de la fonction UPCASE, vous garantissez une cohérence parfaite pour vos futurs PROC SQL tout en gagnant un temps précieux sur votre programmation.

Le Problème Les champs de saisie libre (comme les noms, les villes ou les catégories) sont un cauchemar pour les jointures ou les agrégations car la casse varie souvent (majuscules, minuscules, mélanges). Vous devez tout uniformiser.


La Solution Comme pour les nombres, utilisez un tableau sur l'ensemble de vos 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. caractères et appliquez une fonction de conversion comme UPCASE (majuscules), LOWCASE (minuscules) ou PROPCASE (première lettre en majuscule).

1
2
3
4
5
6
7
8
data Upper;
set Demographic;
array Chars [*] _character_;
do i=1 to dim(Chars);
Chars[i] = upcase(Chars[i]);
end;
drop i;
run;

En Bref

  • L'instruction array Chars [*] _character_; rassemble toutes vos colonnes texte.
  • La fonction upcase() transforme chaque valeur en majuscules pour garantir la cohérence de vos futurs PROC SQL ou MERGE.
  • Le conseil de l'expert : Pour nettoyer des adresses ou des noms propres, pensez à ajouter la fonction COMPBL() qui convertira tous les espaces multiples accidentels en un seul espace.


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.