Publicado el :
Macro CREATION_INTERNE

Macro de alineación y formato por expresiones regulares

Este código también está disponible en: Deutsch English Français
Esta macro itera sobre una lista de variables proporcionada como parámetro (delimitada por espacios). Para cada variable, genera código SAS© (destinado a ser ejecutado en un paso DATA) aplicando una serie de funciones `PRXCHANGE`. Estas transformaciones tienen como objetivo estandarizar el espaciado alrededor de números, paréntesis y puntos decimales. Tenga en cuenta que este código depende de una macro externa `%AHGcount` no incluida aquí.
Análisis de datos

Type : CREATION_INTERNE


El script define una macro de utilidad. No lee datos directamente, sino que manipula variables pasadas como argumento dentro de un paso Data que la llama.

1 Bloque de código
MACRO
Explicación :
Definición de la macro `AHGalign`. Itera sobre la lista de variables proporcionada (`allvar`) usando la macro de terceros `%AHGcount`. Para cada variable, inyecta cuatro instrucciones `PRXCHANGE` para: 1) Formatear números seguidos de paréntesis. 2) Agregar dos espacios delante de los dígitos solos. 3) Agregar un espacio delante de los números de dos dígitos. 4) Eliminar los espacios después de un punto.
¡Copiado!
1%macro AHGalign(allvar);
2 %local var i;
3 %DO i=1 %to %AHGcount(&allvar);
4 %let var=%scan(&allvar,&i);
5 &var=PRXCHANGE('s/\s*(\d+)\s*\((\S*)\s*\)/\1 (\2)/',-1,&var);
6 &var=PRXCHANGE('s/(\b\d\b)/ \1/',-1,&var);
7 &var=PRXCHANGE('s/(\b\d\d\b)/ \1/',-1,&var);
8 &var=PRXCHANGE('s/(\.\s*)/./',-1,&var);
9 %END;
10%mend;
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.