Les données proviennent du jeu de données SASHELP.AIR, un exemple de données intégré à SAS.
1 Bloc de code
DATA STEP
Explication : Ce bloc DATA _NULL_ génère dynamiquement une procédure PROC FORMAT. Il crée un format nommé `pct_` qui mappe des valeurs numériques (représentant un pourcentage de 0 à 1) à des codes couleur hexadécimaux. Les couleurs varient progressivement du bleu (froid, faible pourcentage) au rouge (chaud, pourcentage élevé). Les valeurs hors de la plage définie reçoivent une couleur grise par défaut.
Copié !
* Create a format to display colors ranging from Blue (cold) to Red (hot) ;
data _null_ ;
call execute('proc format fmtlib ; value pct_') ;
max=1;
maxloop=255 ;
do i=1 to maxloop ;
color='cx'||put(i/maxloop*255,hex2.)||'00'||put((maxloop-i)/maxloop*255,hex2.) ;
from=((i-1)/maxloop)*max ;
to=(i/maxloop)*max ;
call execute(put(from,best.)||'-'||put(to,best.)||'='||quote(color)) ;
end ;
call execute('.="light gray" other="cxd0d0d0" ; run ;') ;
run ;
1
* Create a format to display colors ranging from Blue (cold) to Red (hot) ;
call execute('.="light gray" other="cxd0d0d0" ; run ;') ;
13
RUN ;
2 Bloc de code
PROC SQL
Explication : Utilise PROC SQL pour extraire les valeurs maximale et minimale de la variable 'air' du dataset `sashelp.air`. Ces valeurs sont ensuite stockées dans les macro-variables `&max` et `&min`. Une macro-variable `&range` est calculée pour obtenir l'étendue totale entre le minimum et le maximum, ce qui servira à normaliser les données par la suite.
Copié !
* get the maximum value of air ;
proc sql ;
select max(air),min(air) into :max,:min from sashelp.air ;
%let range=%sysevalf(&max-&min) ;
1
* get the maximum value of air ;
2
PROC SQL ;
3
select max(air),min(air) into :max,:min from sashelp.air ;
4
%let range=%sysevalf(&max-&min) ;
3 Bloc de code
DATA STEP Data
Explication : Ce DATA STEP crée un nouveau dataset temporaire nommé 'air'. Il lit le dataset `sashelp.air`, extrait l'année et le mois de la variable 'date', puis calcule une nouvelle variable 'pct'. Cette variable 'pct' représente la valeur de 'air' normalisée, exprimée comme un pourcentage au-dessus du minimum et dans la plage définie par `&range`. Elle quantifie la qualité de l'air relative.
Copié !
* express values of air as a percentage of the maximum ;
data air ;
set sashelp.air ;
year=year(date) ;
month=month(date) ;
* percentage is the level above the minimum ;
pct=(air-&min)/&range ;
run ;
1
* express values of air as a percentage of the maximum ;
2
DATA air ;
3
SET sashelp.air ;
4
year=year(date) ;
5
month=month(date) ;
6
* percentage is the level above the minimum ;
7
pct=(air-&min)/&range ;
8
RUN ;
4 Bloc de code
PROC TABULATE
Explication : Ce bloc génère un rapport HTML interactif ('test.html') en utilisant ODS HTML et PROC TABULATE. Il affiche un tableau croisé dynamique de la variable 'pct' (qualité de l'air en pourcentage), classée par année et par mois. Le style des cellules est modifié en appliquant le format `pct_` créé précédemment, ce qui colore l'arrière-plan des cellules du tableau en fonction de la valeur 'pct', du bleu (meilleur) au rouge (pire), pour une visualisation intuitive de la qualité de l'air.
Copié !
* tabulate the results indicating maximum as red, minimum as blue ;
ods html file='test.html' ;
title 'Air Quality over the years' ;
footnote 'Blue (cold) is best, Red (hot) is worst' ;
proc tabulate data=air style={background=pct_.} ;
class year month ;
var pct ;
label pct='Air Quality Percent of worst month' ;
table sum=''*pct*f=percent.,year='Year',month='Month of Year' ;
run ;
ods html close ;
1
* tabulate the results indicating maximum as red, minimum as blue ;
2
ods html file='test.html' ;
3
title 'Air Quality over the years' ;
4
footnote 'Blue (cold) is best, Red (hot) is worst' ;
5
PROC TABULATEDATA=air style={background=pct_.} ;
6
class year month ;
7
var pct ;
8
label pct='Air Quality Percent of worst month' ;
9
TABLE sum=''*pct*f=percent.,year='Year',month='Month of Year' ;
10
RUN ;
11
ods html close ;
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.