sessionProp

addFormat

##set_sessionprop

Description

L'action sessionProp.addFormatAction CAS chargeant une bibliothèque de formats personnalisés dans la session active. Elle rend ces formats disponibles pour traiter et afficher les données en mémoire. est votre outil de choix pour ajouter des formats personnalisés à une bibliothèque de formats CAS existante. Imaginez-la comme un traducteur personnel pour vos données, capable de transformer des valeurs brutes en libellés explicites (parce que lire '1' et '2' c'est bien, mais lire 'Ventes' et 'Marketing' c'est quand même plus clair, n'est-ce pas ?). Elle permet de spécifier le type (VALUE, PICTURE, INVALUE), les plages de valeurs, et même le comportement multilingue. Source : .

Syntaxe Officielle
proc cas;
sessionProp.addFormat result=results status=rc /
dataType={"string-1", ...},
defaultL=64-bit-integer,
fill={"string-1", ...},
fmtLibName="string", /* Requis */
fmtName="string", /* Requis */
fmtType="string",
fuzz=double,
locale="string",
maxL=64-bit-integer,
minL=64-bit-integer,
mult={double-1, ...},
multiLabel=TRUE | FALSE,
noedit={"string-1", ...},
notSorted=TRUE | FALSE,
prefix={"string-1", ...},
ranges={"string-1", ...},
replace=TRUE | FALSE;
quit;

Paramètres Clés

Nom du paramètre Description
dataType Indique si la valeur est de type DATE, TIME ou DATETIME.
defaultL Spécifie la longueur par défaut du format. La valeur par défaut est -1.
fill Indique le caractère de remplissage utilisé pour un format de type PICTURE.
fmtLibName Obligatoire. Spécifie le nom de la bibliothèque de formats dans laquelle ajouter le format.
fmtName Obligatoire. Spécifie le nom du format à créer. Attention : un nom de format ne peut pas se terminer par un chiffre, ni utiliser le nom d'un format natif SAS. Un '$' doit préfixer les formats caractères.
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. La valeur par défaut est 0.
locale Spécifie la locale à utiliser dans le préfixe du nom de format (pour créer un format spécifique à une langue ou région).
maxL Spécifie la longueur maximale allouée pour le format, en octets. La valeur par défaut est -1.
minL Spécifie la longueur minimale allouée pour le format, en octets. La valeur par défaut est -1.
mult Indique le multiplicateur pour les formats PICTURE au lieu de le calculer en se basant sur les points décimaux. La valeur par défaut est 0.
multiLabel Si TRUE, permet d'associer plusieurs libellés pour une même valeur interne (utile avec la procédure MEANS/SUMMARY). La valeur par défaut est FALSE.
noedit Indique un libellé non-picture pour le format PICTURE.
notSorted Si TRUE, les valeurs ou les plages sont stockées dans l'ordre exact où elles ont été définies plutôt que d'être triées. La valeur par défaut est FALSE.
prefix Indique les caractères de préfixe pour le format PICTURE.
ranges Spécifie une liste de paires 'valeur=libellé' ou 'plage=libellé'. Les plages s'écrivent sous la forme 'min-max=libellé'. Exemple: {'1-10=Low', '11-20=High'}.
replace Si TRUE, remplace un format existant portant le même nom. La valeur par défaut est TRUE.

Préparation des données

Création d'une table d'employés de test

Nous générons une petite table contenant des employés avec un code de département numérique (10, 20, 30) que nous formatterons ultérieurement.

1DATA casuser.employes;
2 INPUT id nom $ dept_code;
3 DATALINES;
41 Dupont 10
52 Martin 20
63 Bernard 10
74 Thomas 30
8;
9RUN;

Exemples d'utilisation

Ajout d'un format simple VALUE

Découvrez cet exemple pour l'action CAS addFormat, qui permet d'instancier dynamiquement un format utilisateur au sein d'une bibliothèque de formats (fmtLibName) rattachée à votre session.

1PROC CAS;
2 sessionProp.addFmtLib / fmtLibName="myfmtlib";
3 sessionProp.addFormat /
4 fmtLibName="myfmtlib"
5 fmtName="deptfmt"
6 fmtType="VALUE"
7 ranges={"10='Ventes'", "20='Marketing'", "30='Technologie'"};
8QUIT;
Résultat Attendu :
Un nouveau format numérique appelé 'deptfmt' est créé et stocké dans la bibliothèque de session 'myfmtlib'. Il traduit la valeur 10 en 'Ventes', etc.
Création d'un format de plages avec l'option MultiLabel

Découvrez cet exemple pour l'action CAS addFormat qui illustre l'implémentation de la fonctionnalité MultiLabel, une capacité avancée du moteur CAS permettant d'assigner une valeur source à plusieurs catégories de sortie simultanément.

1PROC CAS;
2 sessionProp.addFmtLib / fmtLibName="myfmtlib";
3 sessionProp.addFormat /
4 fmtLibName="myfmtlib"
5 fmtName="scoreFmt"
6 fmtType="VALUE"
7 multiLabel=TRUE
8 ranges={"0-50='Echec'", "51-100='Réussite'", "90-100='Excellence'"};
9QUIT;
Résultat Attendu :
Le format 'scoreFmt' est ajouté à la bibliothèque avec succès. L'activation de multiLabel permet d'exploiter les plages croisées dans les actions CAS analytiques supportant les multilabels.