Publicado el :
Macro SASHELP

Uso de listas de variables macro para programas dinámicos

Este código también está disponible en: Deutsch English Français
Este script SAS© ilustra la creación dinámica de una lista vertical de variables macro. A partir del conjunto de datos SASHELP.CLASS, genera variables macro llamadas STUDENT1 a STUDENT19, cada una conteniendo el nombre de un estudiante. Se crea una variable macro adicional, NUM_STUDENTS, para almacenar el número total de estudiantes en la lista. La creación se realiza a través de un paso DATA y el uso de la función CALL SYMPUTX. El script incluye luego una sección de verificación que muestra el contenido de estas nuevas variables macro en el log de SAS©.
Análisis de datos

Type : SASHELP


Los datos de entrada provienen del conjunto de datos interno SASHELP.CLASS, disponible por defecto en SAS.

1 Bloque de código
DATA STEP
Explicación :
Este paso DATA _NULL_ recorre el conjunto de datos SASHELP.CLASS. Para cada observación, se utiliza CALL SYMPUTX para crear una variable macro llamada 'STUDENT' seguida del número de observación (_n_) y asignarle el valor de la variable 'name'. Cuando se alcanza el final del archivo (end=eof), se crea una variable macro 'NUM_STUDENTS' que contiene el número total de observaciones procesadas.
¡Copiado!
1DATA _null_;
2 SET sashelp.class END=eof;
3 call symputx(cats('STUDENT',_n_),name);
4 IF eof THEN call symputx('NUM_STUDENTS',_n_);
5RUN;
2 Bloque de código
MACRO STATEMENT
¡Copiado!
1* Verify the contents of the new macro variables by printing to the SAS log.;
2options nosource;
3%put ======================;
4%put Number of Students: &NUM_STUDENTS;
5%put;
6%put Student 1: &STUDENT1;
7%put Student 2: &STUDENT2;
8%put Student 3: &STUDENT3;
9%put ...;
10%put Student 17: &STUDENT17;
11%put Student 18: &STUDENT18;
12%put Student 19: &STUDENT19;
13%put ======================;
14options SOURCE;
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 : HANDS-ON WORKSHOP, Title: Using SAS Macro Variable Lists to Create Dynamic Data-Driven Programs, Instructor: Josh Horstman