Publicado el :
Informes SASHELP

Análisis y Reporte de Calidad del Aire

Este código también está disponible en: Deutsch English Français
En espera de validación
El script comienza creando dinámicamente un formato SAS© personalizado (`pct_`) que asocia rangos de valores numéricos con colores (del azul al rojo) para representar niveles de 'frío' a 'cálido'. Luego, utiliza PROC SQL para determinar los valores mínimos y máximos de la variable 'air' en el conjunto de datos SASHELP.AIR. Un DATA STEP subsiguiente calcula un indicador de 'porcentaje' de calidad del aire, normalizado con respecto a estos min/max. Finalmente, se emplea PROC TABULATE con ODS HTML para generar un informe visual, donde las celdas de la tabla se colorean según el índice de porcentaje, ofreciendo una vista clara de las variaciones de la calidad del aire a lo largo del tiempo.
Análisis de datos

Type : SASHELP


Los datos provienen del conjunto de datos SASHELP.AIR, un ejemplo de datos integrado en SAS.

1 Bloque de código
DATA STEP
Explicación :
Este bloque DATA _NULL_ genera dinámicamente un procedimiento PROC FORMAT. Crea un formato llamado `pct_` que mapea valores numéricos (representando un porcentaje de 0 a 1) a códigos de color hexadecimales. Los colores varían progresivamente del azul (frío, bajo porcentaje) al rojo (cálido, alto porcentaje). Los valores fuera del rango definido reciben un color gris por defecto.
¡Copiado!
1* Create a format to display colors ranging from Blue (cold) to Red (hot) ;
2DATA _null_ ;
3 call execute('proc format fmtlib ; value pct_') ;
4 max=1;
5 maxloop=255 ;
6 DO i=1 to maxloop ;
7 color='cx'||put(i/maxloop*255,hex2.)||'00'||put((maxloop-i)/maxloop*255,hex2.) ;
8 from=((i-1)/maxloop)*max ;
9 to=(i/maxloop)*max ;
10 call execute(put(from,best.)||'-'||put(to,best.)||'='||quote(color)) ;
11 END ;
12 call execute('.="light gray" other="cxd0d0d0" ; run ;') ;
13RUN ;
2 Bloque de código
PROC SQL
¡Copiado!
1* get the maximum value of air ;
2PROC SQL ;
3 select max(air),min(air) into :max,:min from sashelp.air ;
4%let range=%sysevalf(&max-&min) ;
3 Bloque de código
DATA STEP Data
¡Copiado!
1* express values of air as a percentage of the maximum ;
2DATA 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 ;
8RUN ;
4 Bloque de código
PROC TABULATE
¡Copiado!
1* tabulate the results indicating maximum as red, minimum as blue ;
2ods html file='test.html' ;
3title 'Air Quality over the years' ;
4footnote 'Blue (cold) is best, Red (hot) is worst' ;
5PROC TABULATE DATA=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' ;
10RUN ;
11ods html close ;
Este material se proporciona "tal cual" por We Are Cas. No hay garantías, expresas o implícitas, en cuanto a la comerciabilidad o idoneidad para un propósito particular con respecto a los materiales o el código contenidos en este documento. We Are Cas no es responsable de los errores en este material tal como existe ahora o existirá, ni We Are Cas proporciona soporte técnico para el mismo.