El script comienza definiendo una variable macro 'name' y un fileref 'odsout'. Luego crea un conjunto de datos llamado 'my_data' a partir de datos en línea (datalines). Se utiliza un PROC SQL para agregar una columna 'bartotal' al conjunto de datos, que representa la suma de 'amount' por 'category'. Un segundo DATA STEP calcula el 'catpct' (porcentaje de cada 'amount' en relación con el 'bartotal') y formatea esta nueva variable como porcentaje. Finalmente, configura las opciones ODS para la salida HTML, define los títulos del gráfico y utiliza PROC SGPLOT para crear un gráfico de barras verticales apiladas. Las opciones clave de SGPLOT incluyen 'response=catpct', 'group=series' y 'dataskin=sheen' para el efecto 3D.
Análisis de datos
Type : CREATION_INTERNE
El conjunto de datos 'my_data' se crea completamente al inicio del script utilizando el método DATALINES. No se utilizan datos externos ni de la biblioteca SASHELP como fuente inicial.
1 Bloque de código
MACRO/GLOBAL
Explicación : Define la variable macro 'name' como 'col6' que se utilizará para nombrar el archivo de salida HTML y la imagen. 'filename odsout '.' ' dirige la salida ODS al directorio de trabajo actual.
¡Copiado!
%let name=col6;
filename odsout '.';
1
%let name=col6;
2
filename odsout '.';
2 Bloque de código
DATA STEP Data
Explicación : Crea el conjunto de datos 'my_data' con las variables CATEGORY, SERIES (carácter) y AMOUNT (numérica) leyendo los datos proporcionados a través de la declaración DATALINES.
¡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ñadiéndole una nueva columna 'bartotal'. Esta columna contiene la suma de 'amount' para cada 'category', calculada mediante una agregación 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 : Un segundo DATA STEP que lee el conjunto de datos 'my_data', calcula el porcentaje 'catpct' de 'amount' en relación con el 'bartotal' para cada observación, 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/OPTIONS
Explicación : Cierra la salida LISTING por defecto. Abre un destino ODS HTML, especificando la ruta de salida, el nombre del archivo ('col6.htm'), un título para la página HTML y un estilo 'htmlblue'. Luego configura las opciones gráficas ODS para generar imágenes PNG con un tamaño específico, sin borde y con un mapa de imagen. Finalmente, define dos títulos para el gráfico con propiedades de color, tamaño y estilo.
title2 color=gray33 ls=0.5 h=17pt "With 3D Shading";
6 Bloque de código
PROC SGPLOT
Explicación : Utiliza PROC SGPLOT para crear un gráfico de barras apiladas. Las barras se definen por 'category' y se apilan por 'series', con 'catpct' como variable de respuesta. La opción 'dataskin=sheen' añade un efecto 3D. El estilo, los colores, las etiquetas y los atributos de los ejes se configuran para mejorar la apariencia del gráfico. Después de la ejecución, el destino ODS HTML se cierra y la salida LISTING se vuelve a abrir.
dataskin=sheen /* <--- basically, added this line! */
7
outlineattrs=(color=black) nostatlabel;
8
yaxis
9
values=(0 to 1BY .2)
10
labelattrs=(size=16pt weight=bold color=gray33)
11
valueattrs=(size=16pt weight=bold color=gray33)
12
offsetmax=0 grid minor minorcount=1;
13
xaxis
14
labelattrs=(size=16pt weight=bold color=gray33)
15
valueattrs=(size=16pt weight=bold color=gray33)
16
display=(noticks);
17
RUN;
18
19
QUIT;
20
ODS HTML CLOSE;
21
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.