sessionProp

addFormat

L'essentiel
L'essentiel
Au-delà du simple stockage de la donnée brute, la capacité à présenter l'information de manière intelligible est cruciale dans tout projet décisionnel. L'action addFormat intervient précisément à ce niveau en permettant aux développeurs d'enrichir les dictionnaires de données du serveur CAS avec des règles d'affichage personnalisées. En transformant des codes techniques ou des plages numériques en libellés métier explicites, elle garantit la lisibilité immédiate des rapports et des tableaux de bord. Cette page rassemble une série de questions-réponses techniques pour vous guider dans la définition syntaxique de ces formats et leur intégration au sein de vos bibliothèques existantes.

Description

Ajoute un format à une bibliothèque de formats. Les formats permettent de contrôler la manière dont les valeurs des variables sont affichées. Cette action est fondamentale pour personnaliser les sorties de données, améliorer la lisibilité des rapports et préparer les données pour l'analyse.

sessionProp.addFormat <result=results> <status=rc> / dataType={"string-1" <, "string-2", ...>}, defaultL=64-bit-integer, fill={"string-1" <, "string-2", ...>}, fmtLibName="string", fmtName="string", fmtType="string", fuzz=double, locale="string", maxL=64-bit-integer, minL=64-bit-integer, mult={double-1 <, double-2>, ...}, multiLabel=TRUE | FALSE, noedit={"string-1" <, "string-2", ...>}, notSorted=TRUE | FALSE, prefix={"string-1" <, "string-2", ...>}, ranges={"string-1" <, "string-2", ...>}, replace=TRUE | FALSE;
Paramètres
ParamètreDescription
dataType Indique si la valeur est de type DATE, TIME ou DATETIME.
defaultL Spécifie la longueur par défaut du format.
fill Indique le caractère de remplissage pour un format de type PICTURE.
fmtLibName Spécifie le nom de la bibliothèque de formats où le nouveau format sera ajouté.
fmtName Spécifie le nom du format à créer. Un nom de format ne peut pas se terminer par un chiffre. Pour un format de caractère, le nom doit commencer par un '$'.
fmtType Indique le type de format : PICTURE, INVALUE, ou VALUE.
fuzz Spécifie un facteur de tolérance (fuzz factor) pour faire correspondre les valeurs numériques à une plage. Utile pour les données non exactes.
locale Spécifie la locale à utiliser dans le préfixe de locale du nom de format, pour créer des formats spécifiques à une langue.
maxL Spécifie une longueur maximale pour le format, en octets.
minL Spécifie une longueur minimale pour le format, en octets.
mult Indique le multiplicateur pour un format de type PICTURE, au lieu de le calculer à partir des points décimaux.
multiLabel Si défini sur True, plusieurs étiquettes peuvent être spécifiées pour la même valeur interne.
noedit Indique une étiquette non-PICTURE pour un format de type PICTURE.
notSorted Si défini sur True, les valeurs ou les plages sont stockées dans l'ordre où elles sont définies, plutôt que d'être triées.
prefix Indique les caractères de préfixe pour un format de type PICTURE.
ranges Spécifie une liste de paires valeur=étiquette ou plage=étiquette. Les plages sont définies comme min-max=étiquette.
replace Si défini sur True, un format existant portant le même nom sera remplacé par ce nouveau format.
Préparation des Données Voir la fiche de ce code dataprep
Création d'une table de données pour les exemples

Avant de créer des formats, nous avons besoin de données. Ce bloc de code SAS crée une table en mémoire dans CAS nommée 'produits' contenant des identifiants de produits et leurs quantités. Cette table servira de base pour appliquer les formats que nous allons créer.

Copié !
1DATA casuser.produits;
2 INPUT ID_Produit $ Quantite;
3 DATALINES;
4 A100 10
5 A200 25
6 B100 55
7 B200 80
8 C100 120
9 ;
10RUN;

Exemples

Cet exemple crée une bibliothèque de formats nommée 'maBiblioFmt' si elle n'existe pas, puis y ajoute un format numérique simple appelé 'NiveauStock'. Ce format catégorise les quantités en trois niveaux : 'Bas', 'Moyen' et 'Haut'.

Code SAS® / CAS Code en attente de validation par la communauté
Copié !
1PROC CAS;
2 sessionprop.addFmtLib fmtLibName="maBiblioFmt";
3 sessionprop.addFormat fmtLibName="maBiblioFmt" fmtName="NiveauStock"
4 ranges={"1-50='Bas'", "51-100='Moyen'", "101-high='Haut'"};
5RUN;
Résultat :
L'action crée le format 'NiveauStock' dans la bibliothèque 'maBiblioFmt' de la session CAS active. Aucune sortie n'est affichée, mais le format est prêt à être utilisé pour formater des colonnes numériques.

Cet exemple crée un format de caractères '$CatProduit' dans la bibliothèque 'maBiblioFmt'. L'option `replace=true` assure que si un format du même nom existe, il sera écrasé. L'option `locale='fr_FR'` spécifie que ce format est destiné à la locale française, ce qui est utile pour la gestion de formats multilingues. Le format regroupe les ID de produits en catégories.

Code SAS® / CAS Code en attente de validation par la communauté
Copié !
1PROC CAS;
2 sessionprop.addFormat
3 fmtLibName="maBiblioFmt"
4 fmtName="$CatProduit"
5 replace=true
6 locale='fr_FR'
7 ranges={"'A100'-'A999'='Catégorie A'", "'B100'-'B999'='Catégorie B'", "other='Autre'"};
8RUN;
Résultat :
Le format de caractères '$CatProduit' est créé ou mis à jour dans la bibliothèque 'maBiblioFmt' avec une spécificité pour la locale 'fr_FR'. Ce format peut maintenant être appliqué à des colonnes de type caractère comme 'ID_Produit' pour afficher des étiquettes plus descriptives.

FAQ

Quel est le but de l'action `addFormat` dans SAS Viya?
Quels sont les paramètres requis pour l'action `addFormat`?
À quoi sert le paramètre `dataType` dans l'action `addFormat`?
Comment spécifier les plages de valeurs pour un format avec l'action `addFormat`?
Que se passe-t-il si j'essaie d'ajouter un format qui existe déjà avec `addFormat`?
Comment créer un format spécifique à une locale avec l'action `addFormat`?
Quelle est la fonction du paramètre `fuzz` dans l'action `addFormat`?
Peut-on définir une longueur par défaut pour un format avec `addFormat`?

Scénarios associés

Cas d'usage
Scénario Standard : Segmentation Client pour une Campagne Marketing

Une équipe marketing souhaite analyser sa base de clients pour une campagne ciblée. L'objectif est de catégoriser les clients par tranche d'âge et par niveau d'activité (nombre ...

Cas d'usage
Scénario Cas Limite : Analyse de Données Cliniques avec Tolérance et Erreurs Contrôlées

Dans le cadre d'un essai clinique, des mesures physiologiques (température) sont collectées. Ces mesures peuvent avoir de légères imprécisions. De plus, les codes d'effets secon...

Cas d'usage
Scénario Complexe : Catégorisation Multi-Labels et Multi-Locales de Transactions Financières

Une banque internationale doit catégoriser des transactions pour des rapports de conformité et d'analyse. Certaines transactions peuvent appartenir à plusieurs catégories (ex: '...