Publicado el :
Macro SASHELP

Segmentación dinámica de datos mediante variables macro verticales

Este código también está disponible en: Deutsch English Français
En espera de validación
El programa define una macro llamada '%split_data'. Primero, utiliza PROC SQL para crear una lista vertical de variables macro que contienen los valores distintos del origen de los vehículos. Luego, un bucle %DO itera sobre esta lista para generar dinámicamente pasos DATA, filtrando y guardando los datos en tablas separadas (por ejemplo, cars_Asia, cars_Europe, etc.).
Análisis de datos

Type : SASHELP


Utiliza la tabla estándar SASHELP.CARS proporcionada con la instalación de SAS.

1 Bloque de código
PROC SQL
Explicación :
Extracción de los valores únicos de la columna ORIGIN a una lista de variables macro incrementales (:ORIGIN1, :ORIGIN2...). La variable automática &sqlobs se utiliza para almacenar el número total de orígenes en &NUM_ORIGINS.
¡Copiado!
1PROC SQL noprint;
2 select distinct origin into :ORIGIN1-
3 from sashelp.cars;
4 %let NUM_ORIGINS = &sqlobs;
5QUIT;
2 Bloque de código
DATA STEP Data
Explicación :
Bucle macro que itera desde 1 hasta el número de orígenes encontrados. Genera un paso DATA para cada iteración. El uso de la resolución indirecta de variables macro (&&ORIGIN&I) permite nombrar dinámicamente la tabla de salida y aplicar el filtro WHERE correspondiente.
¡Copiado!
1%DO i = 1 %to &NUM_ORIGINS;
2 DATA cars_&&ORIGIN&I;
3 SET sashelp.cars;
4 where origin = "&&ORIGIN&I";
5 RUN;
6%END;
3 Bloque de código
MACRO CALL
Explicación :
Ejecución de la macro para iniciar el proceso de división.
¡Copiado!
1%split_data;
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.
Información de copyright : Instructor : Josh Horstman