El script inicializa una macro-variable y un fileref para la salida ODS. Luego, crea el conjunto de datos `my_data` a partir de datos en línea (`datalines`). Se utiliza un paso `PROC SQL` para calcular la suma total (`bartotal`) de `AMOUNT` para cada `CATEGORY`. Un segundo `DATA STEP` calcula el porcentaje (`catpct`) de cada `AMOUNT` con respecto a su `bartotal` correspondiente y aplica un formato. Las destinos ODS HTML y ODS Graphics se configuran para generar un archivo HTML con el gráfico. Finalmente, se utiliza `PROC SGPLOT` para crear un gráfico de barras horizontales apiladas al 100%, estilizado con colores personalizados, un efecto 3D ('sheen') y atributos de eje específicos. La salida se genera en un archivo HTML y las destinos ODS se cierran.
Análisis de datos
Type : CREATION_INTERNE
Los datos fuente `my_data` se crean directamente en el script SAS utilizando la instrucción `datalines`, lo que permite una ejecución autónoma sin dependencias externas.
1 Bloque de código
Declaraciones Globales
Explicación : Define una macro-variable `name` para el nombre del archivo y un fileref `odsout` que apunta al directorio actual para las salidas ODS.
¡Copiado!
%let name=bar6;
/*
Set your current-working-directory (to read/write files), if you need to ...
%let rc=%sysfunc(dlgcdir('c:\someplace\public_html'));
*/
filename odsout '.';
1
%let name=bar6;
2
3
/*
4
Set your current-working-directory (to read/write files), if you need to ...
Explicación : Crea un conjunto de datos SAS llamado `my_data` utilizando datos proporcionados en línea a través de la instrucción `datalines`, con las variables `CATEGORY`, `SERIES` (carácter) 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 Data
Explicación : Utiliza `PROC SQL` para modificar el conjunto de datos `my_data`. Recalcula `my_data` añadiendo una nueva columna `bartotal`, que es la suma de `AMOUNT` para cada `CATEGORY`. La cláusula `GROUP BY` asegura que `bartotal` se calcule por categoría.
¡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 Data
Explicación : Un segundo `DATA STEP` lee el conjunto de datos `my_data` (modificado por `PROC SQL`) y calcula una nueva variable `catpct` que representa el porcentaje de `AMOUNT` con respecto a `bartotal`. Se aplica un formato `percent6.0` a `catpct`.
¡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 HTML
Explicación : Cierra el destino ODS LISTING. Abre el destino ODS HTML, especifica el archivo de salida HTML (`bar6.htm`), el título de la página y el estilo `htmlblue`. Configura `ODS GRAPHICS` para la exportación de imágenes PNG con dimensiones específicas, y define dos títulos para el gráfico.
title2 color=gray33 ls=0.5 h=17pt "With 3D Shading";
6 Bloque de código
PROC SGPLOT
Explicación : Genera un gráfico de barras horizontales apiladas al 100% utilizando `PROC SGPLOT`. Se utiliza el conjunto de datos `my_data`. La opción `hbar` crea las barras, `response=catpct` indica la variable a representar, `stat=sum` agrega los valores y `group=series` apila las barras por `SERIES`. `dataskin=sheen` aplica un efecto visual 3D. Los ejes X e Y se configuran con atributos de estilo y visualización personalizados.
dataskin=sheen /* <--- basically, added this line! */
7
outlineattrs=(color=black) nostatlabel;
8
xaxis
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
yaxis
14
labelattrs=(size=16pt weight=bold color=gray33)
15
valueattrs=(size=16pt weight=bold color=gray33)
16
display=(noticks);
17
RUN;
7 Bloque de código
ODS HTML
¡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.