Ce script illustre comment créer des formats d'image personnalisés (picture formats) pour afficher des nombres fractionnaires. Il couvre l'affichage d'un nombre spécifique de décimales, le comportement de troncation par défaut des formats picture, et comment activer l'arrondi avec l'option (round).
Analyse des données
Type : CREATION_INTERNE
Les jeux de données 'vallist' et 'x' sont générés directement dans le script via des boucles DO.
1 Bloc de code
PROC FORMAT
Explication : Définition de trois formats personnalisés de type 'picture' pour contrôler l'affichage des nombres : entier (showval), une décimale (withdec), et deux décimales (twodec).
Copié !
title1 '12.2.2 Working with Fractional Values';
title2 'Showing Decimals';
proc format;
picture showval
other = '0000';
picture withdec
other = '00.0';
picture twodec
other = '09.00';
run;
1
title1 '12.2.2 Working with Fractional Values';
2
title2 'Showing Decimals';
3
4
PROC FORMAT;
5
picture showval
6
other = '0000';
7
picture withdec
8
other = '00.0';
9
picture twodec
10
other = '09.00';
11
RUN;
2 Bloc de code
DATA STEP Data
Explication : Création d'un jeu de données de test 'vallist' contenant des valeurs de 0 à 3 par pas de 0.25. Application des formats définis précédemment pour observer les différences d'affichage.
Copié !
data vallist;
do val = 0 to 3 by .25;
val2 = val;
val3 = val;
val4 = val;
output;
end;
format val2 showval. val3 withdec. val4 twodec.;
run;
1
DATA vallist;
2
DO val = 0 to 3BY .25;
3
val2 = val;
4
val3 = val;
5
val4 = val;
6
OUTPUT;
7
END;
8
FORMAT val2 showval. val3 withdec. val4 twodec.;
9
RUN;
3 Bloc de code
PROC PRINT
Explication : Affichage du contenu de la table 'vallist' pour vérifier le rendu des formats.
Copié !
proc print data=vallist;
run;
1
PROC PRINTDATA=vallist;
2
RUN;
4 Bloc de code
PROC FORMAT
Explication : Définition d'un format 'showdec' affichant deux décimales. Sans l'option 'round', ce format tronquera les valeurs.
Copié !
proc format;
picture showdec
other = '09.00';
run;
1
PROC FORMAT;
2
picture showdec
3
other = '09.00';
4
RUN;
5 Bloc de code
DATA STEP Data
Explication : Création d'un jeu de données 'x' avec des valeurs fractionnaires spécifiques pour tester le comportement du format sur les décimales.
Copié !
data x;
do x = .007,.017,.123,1.234, 12.345, 1234;
y=x;
output;
end;
format y showdec. x 8.3;
run;
1
DATA x;
2
DO x = .007,.017,.123,1.234, 12.345, 1234;
3
y=x;
4
OUTPUT;
5
END;
6
FORMAT y showdec. x 8.3;
7
RUN;
6 Bloc de code
PROC PRINT
Explication : Affichage pour démontrer la troncation des décimales par défaut (ex: 1.234 affiché comme 1.23).
Copié !
proc print data=x;
run;
1
PROC PRINTDATA=x;
2
RUN;
7 Bloc de code
PROC FORMAT
Explication : Définition du format 'showdecr' utilisant l'option '(round)' pour forcer l'arrondi arithmétique au lieu de la troncation.
Copié !
proc format;
picture showdecr (round)
other = '00009.00';
run;
1
PROC FORMAT;
2
picture showdecr (round)
3
other = '00009.00';
4
RUN;
8 Bloc de code
DATA STEP Data
Explication : Recréation du jeu de données 'x' et application du nouveau format avec arrondi.
Copié !
data x;
do x = .007,.017,.123,1.234, 12.345, 1234;
y=x;
output;
end;
format y showdecr.
x 8.3;
run;
1
DATA x;
2
DO x = .007,.017,.123,1.234, 12.345, 1234;
3
y=x;
4
OUTPUT;
5
END;
6
FORMAT y showdecr.
7
x 8.3;
8
RUN;
9 Bloc de code
PROC PRINT
Explication : Affichage final montrant que les valeurs sont maintenant correctement arrondies (ex: 1.234 affiché comme 1.23, mais .007 affiché comme .01).
Copié !
proc print data=x;
run;
1
PROC PRINTDATA=x;
2
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.
SAS et tous les autres noms de produits ou de services de SAS Institute Inc. sont des marques déposées ou des marques de commerce de SAS Institute Inc. aux États-Unis et dans d'autres pays. ® indique un enregistrement aux États-Unis. WeAreCAS est un site communautaire indépendant et n'est pas affilié à SAS Institute Inc.
Ce site utilise des cookies techniques et analytiques pour améliorer votre expérience.
En savoir plus.