Publicado el :

Análisis de Flujo de Datos con SCAPROC

Este código también está disponible en: Deutsch English Français
En espera de validación
El programa comienza configurando una biblioteca de macros autocallable y activando el modo de depuración detallado para SCAPROC. Luego, inicia la grabación SCAPROC. Dos pasos DATA iniciales crean copias de los datos 'sashelp.class'. Estas copias se agregan luego por 'sex' usando PROC SUMMARY, creando conjuntos de datos intermedios (x2, y2). Estos conjuntos de datos agregados se ordenan por 'sex' con PROC SORT (x3, y3). Un paso DATA de fusión combina luego 'x3' e 'y3' en 'z'. Se usa una PROC PRINT para mostrar el contenido del conjunto de datos 'z'. Finalmente, una PROC SQL realiza una unión izquierda entre los conjuntos de datos 'x' e 'y' originales para crear 'sql_table'. La grabación SCAPROC se detiene y se llama a la macro %scaproc_analyse para generar la descripción GraphViz del flujo de procesamiento.
Análisis de datos

Type : SASHELP


Los datos de origen provienen exclusivamente del conjunto de datos interno 'SASHELP.CLASS', que es una tabla de ejemplo estándar provista con SAS. No se utilizan datos externos o generados en línea ('datalines').

1 Bloque de código
Configuration Système et Macros
Explicación :
Este bloque configura el sistema SAS para el uso de macros específicas. Define 'mymacros' como una biblioteca autocallable que apunta al directorio actual, agrega esta biblioteca a las opciones SASAUTOS e inicializa la variable macro '_eandebug' para activar el rastreo detallado de SCAPROC. Finalmente, la macro '%eanbegin' inicia la grabación del flujo de ejecución del programa con el nombre 'Sample 1'.
¡Copiado!
1filename mymacros '.';
2options append=sasautos=(mymacros);
3 
4%* SET macro variable to turn on SCAPROC and SET verbose logging ;
5%let _eandebug=scaproc,verbose;
6
7%* Start recording SCAPROC DATA ;
8%eanbegin(Sample 1)
2 Bloque de código
DATA STEP Data
Explicación :
Un paso DATA que crea un nuevo conjunto de datos llamado 'x'. Lee todas las observaciones y variables del conjunto de datos 'sashelp.class' y las copia en 'x'.
¡Copiado!
1DATA x ;
2 SET sashelp.class ;
3RUN ;
3 Bloque de código
DATA STEP Data
Explicación :
Un segundo paso DATA que crea un nuevo conjunto de datos llamado 'y'. Similar al anterior, también copia todas las observaciones y variables de 'sashelp.class' en 'y'.
¡Copiado!
1DATA y ;
2 SET sashelp.class ;
3RUN ;
4 Bloque de código
PROC SUMMARY Data
Explicación :
Este procedimiento calcula estadísticas resumidas. Para el conjunto de datos 'x', agrupa las observaciones por la variable 'sex' y calcula el promedio de la variable 'height'. Los resultados se almacenan en el nuevo conjunto de datos 'x2'.
¡Copiado!
1PROC SUMMARY DATA=x ;
2 class sex ;
3 var height ;
4 OUTPUT out=x2 mean= ;
5RUN ;
5 Bloque de código
PROC SUMMARY Data
Explicación :
Similar al bloque anterior, este procedimiento calcula las estadísticas resumidas para el conjunto de datos 'y'. Agrupa por 'sex', calcula el promedio de 'height' y guarda los resultados en 'y2'.
¡Copiado!
1PROC SUMMARY DATA=y ;
2 class sex ;
3 var height ;
4 OUTPUT out=y2 mean= ;
5RUN ;
6 Bloque de código
PROC SORT Data
Explicación :
El procedimiento PROC SORT se utiliza para ordenar el conjunto de datos 'x2' según la variable 'sex'. El conjunto de datos ordenado se guarda luego con el nombre 'x3'. La ordenación es un paso preparatorio esencial para las operaciones de fusión o unión.
¡Copiado!
1PROC SORT DATA=x2 out=x3 ;
2 BY sex ;
3RUN ;
7 Bloque de código
PROC SORT Data
Explicación :
De manera idéntica al bloque anterior, este PROC SORT ordena el conjunto de datos 'y2' por la variable 'sex' y almacena el resultado en 'y3'. Esto prepara 'y3' para una fusión con 'x3'.
¡Copiado!
1PROC SORT DATA=y2 out=y3 ;
2 BY sex ;
3RUN ;
8 Bloque de código
DATA STEP Data
Explicación :
Este paso DATA realiza una fusión (merge) de los conjuntos de datos ordenados 'x3' e 'y3'. La fusión se realiza sobre la variable 'sex', lo que combina las observaciones con el mismo valor de 'sex' de ambos conjuntos de datos en el nuevo conjunto de datos 'z'.
¡Copiado!
1DATA z ;
2 MERGE x3 y3 ;
3 BY sex ;
4RUN ;
9 Bloque de código
PROC PRINT
Explicación :
El procedimiento PROC PRINT se utiliza para mostrar el contenido del último conjunto de datos creado en la sesión SAS. En este caso, se trata del conjunto de datos 'z' resultante de la operación de fusión.
¡Copiado!
1PROC PRINT ;
2RUN ;
10 Bloque de código
PROC SQL Data
Explicación :
Este bloque utiliza PROC SQL para realizar una unión. Crea una nueva tabla llamada 'sql_table' combinando los conjuntos de datos 'x' e 'y' mediante una unión externa izquierda (LEFT JOIN) sobre la variable 'sex'. Esto incluye todas las observaciones de 'x' y las observaciones correspondientes de 'y'.
¡Copiado!
1PROC SQL ;
2 create TABLE sql_table as
3 select *
4 from x
5 left join
6 y
7 on x.sex=y.sex ;
8QUIT ;
11 Bloque de código
Analyse SCAPROC
Explicación :
Este bloque finaliza la grabación de los datos SCAPROC con la macro '%eanend'. Luego, se llama a la macro '%scaproc_analyse' para procesar los datos SCAPROC registrados y generar una salida en formato GraphViz DOT, que puede ser utilizada para crear una representación gráfica (organigrama) del flujo de ejecución del programa SAS.
¡Copiado!
1%* Finish recording SCAPROC DATA and write it out ;
2%eanend
3
4
5%* Generate the graphViz dot language to be used to make diagram ;
6%scaproc_analyse
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.