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!
filename mymacros '.';
options append=sasautos=(mymacros);
%* set macro variable to turn on SCAPROC and set verbose logging ;
%let _eandebug=scaproc,verbose;
%* Start recording SCAPROC data ;
%eanbegin(Sample 1)
1
filename mymacros '.';
2
options 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!
data x ;
set sashelp.class ;
run ;
1
DATA x ;
2
SET sashelp.class ;
3
RUN ;
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!
data y ;
set sashelp.class ;
run ;
1
DATA y ;
2
SET sashelp.class ;
3
RUN ;
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!
proc summary data=x ;
class sex ;
var height ;
output out=x2 mean= ;
run ;
1
PROC SUMMARYDATA=x ;
2
class sex ;
3
var height ;
4
OUTPUT out=x2 mean= ;
5
RUN ;
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!
proc summary data=y ;
class sex ;
var height ;
output out=y2 mean= ;
run ;
1
PROC SUMMARYDATA=y ;
2
class sex ;
3
var height ;
4
OUTPUT out=y2 mean= ;
5
RUN ;
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!
proc sort data=x2 out=x3 ;
by sex ;
run ;
1
PROC SORTDATA=x2 out=x3 ;
2
BY sex ;
3
RUN ;
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!
proc sort data=y2 out=y3 ;
by sex ;
run ;
1
PROC SORTDATA=y2 out=y3 ;
2
BY sex ;
3
RUN ;
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!
data z ;
merge x3 y3 ;
by sex ;
run ;
1
DATA z ;
2
MERGE x3 y3 ;
3
BY sex ;
4
RUN ;
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!
proc print ;
run ;
1
PROC PRINT ;
2
RUN ;
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!
proc sql ;
create table sql_table as
select *
from x
left join
y
on x.sex=y.sex ;
quit ;
1
PROC SQL ;
2
create TABLE sql_table as
3
select *
4
from x
5
left join
6
y
7
on x.sex=y.sex ;
8
QUIT ;
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!
%* Finish recording SCAPROC data and write it out ;
%eanend
%* Generate the graphViz dot language to be used to make diagram ;
%scaproc_analyse
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.
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.