El script comienza definiendo una variable macro y un fileref. Luego crea un conjunto de datos llamado 'my_data' a partir de instrucciones DATALINES. Se utiliza un paso PROC SQL para enriquecer 'my_data' calculando el total de los montos por categoría ('bartotal'). Un segundo paso DATA STEP calcula el porcentaje de cada monto con respecto a su 'bartotal' ('catpct') y formatea esta nueva variable. Finalmente, el script configura los destinos ODS (HTML y gráfico PNG) y utiliza PROC SGPLOT para generar un gráfico de barras apiladas al 100%, ilustrando estos porcentajes con personalizaciones estéticas para los ejes y los colores.
Análisis de datos
Type : CREATION_INTERNE
El conjunto de datos principal 'my_data' se crea directamente en el script a través de una instrucción DATALINES, lo que lo convierte en una fuente de datos interna al código.
1 Bloque de código
Macro Variable / Fileref
Explicación : Define la variable macro 'name' utilizada para el nombre de archivo de salida y el 'fileref' 'odsout' que apunta al directorio actual para las salidas ODS.
¡Copiado!
%let name=col5;
filename odsout '.';
1
%let name=col5;
2
filename odsout '.';
2 Bloque de código
DATA STEP Data
Explicación : Crea el conjunto de datos SAS 'my_data' leyendo los datos brutos proporcionados directamente en el script ('datalines') con las variables CATEGORY, SERIES y AMOUNT.
¡Copiado!
data my_data;
input CATEGORY SERIES $ 3-11 AMOUNT;
datalines;
1 Series A 5.0
2 Series A 6.8
3 Series A 9.2
1 Series B 6.5
2 Series B 6.9
3 Series B 5.6
1 Series C 2.3
2 Series C 3.1
3 Series C 2.3
;
run;
1
DATA my_data;
2
INPUT CATEGORY SERIES $ 3-11 AMOUNT;
3
DATALINES;
4
1 Series A 5.0
5
2 Series A 6.8
6
3 Series A 9.2
7
1 Series B 6.5
8
2 Series B 6.9
9
3 Series B 5.6
10
1 Series C 2.3
11
2 Series C 3.1
12
3 Series C 2.3
13
;
14
RUN;
3 Bloque de código
PROC SQL
Explicación : Modifica el conjunto de datos 'my_data' añadiendo una nueva columna 'bartotal', que representa la suma de los 'AMOUNT' para cada 'CATEGORY' usando una consulta SQL.
¡Copiado!
proc sql;
create table my_data as
select *, sum(amount) as bartotal
from my_data
group by category;
quit; run;
1
PROC SQL;
2
create TABLE my_data as
3
select *, sum(amount) as bartotal
4
from my_data
5
group BY category;
6
QUIT; RUN;
4 Bloque de código
DATA STEP
Explicación : Modifica el conjunto de datos 'my_data' calculando 'catpct', el porcentaje de 'AMOUNT' con respecto a 'bartotal', y aplica un formato de porcentaje a esta nueva variable.
¡Copiado!
data my_data; set my_data;
format catpct percent6.0;
catpct=amount/bartotal;
run;
1
DATA my_data; SET my_data;
2
FORMAT catpct percent6.0;
3
catpct=amount/bartotal;
4
RUN;
5 Bloque de código
ODS
Explicación : Cierra el destino ODS LISTING por defecto. Abre el destino ODS HTML, especifica la ruta de salida, el nombre del archivo HTML y el estilo. Configura las opciones ODS GRAPHICS para la imagen PNG generada. Define los títulos principales del gráfico con opciones de estilo y color.
¡Copiado!
ODS LISTING CLOSE;
ODS HTML path=odsout body="&name..htm"
(title="SGplot 100% Stacked Bar")
style=htmlblue;
ods graphics / imagefmt=png imagename="&name"
width=800px height=600px noborder imagemap;
title1 color=gray33 ls=0.5 h=23pt "100% Stacked Bar";
title2 color=gray33 ls=0.5 h=17pt "Compares the percent each value";
title3 color=gray33 ls=0.5 h=17pt "to a total across categories";
title2 color=gray33 ls=0.5 h=17pt "Compares the percent each value";
11
title3 color=gray33 ls=0.5 h=17pt "to a total across categories";
6 Bloque de código
PROC SGPLOT
Explicación : Genera un gráfico de barras apiladas al 100% utilizando el conjunto de datos 'my_data'. Las barras representan 'CATEGORY', la altura se basa en 'catpct', y las pilas están definidas por 'SERIES'. El código personaliza las leyendas, los colores de los datos, los atributos de las barras (ancho, contorno) y la apariencia de los ejes X e Y (etiquetas, valores, cuadrícula).
Explicación : Finaliza los procedimientos activos. Cierra el destino ODS HTML, guardando así el archivo HTML y las imágenes asociadas. Luego reactiva el destino ODS LISTING.
¡Copiado!
quit;
ODS HTML CLOSE;
ODS LISTING;
1
QUIT;
2
ODS HTML CLOSE;
3
ODS LISTING;
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.
SAS y todos los demás nombres de productos o servicios de SAS Institute Inc. son marcas registradas o marcas comerciales de SAS Institute Inc. en los EE. UU. y otros países. ® indica registro en los EE. UU. WeAreCAS es un sitio comunitario independiente y no está afiliado a SAS Institute Inc.
Este sitio utiliza cookies técnicas y analíticas para mejorar su experiencia.
Saber más.