Publicado el :
Macro CREATION_INTERNE

Macro AHGwords - Generación de listas por sustitución

Este código también está disponible en: Deutsch English Français
La macro `AHGwords` toma un patrón de palabra (`word`) y un iterador (`n`). Si el patrón no contiene el carácter ' @code_sas©/16.4'.sas©, este se añade al final. La macro detecta si `n` es un escalar (a través de la macro externa `%AHGcount`) o una lista. Si es un escalar, genera una secuencia numérica a partir de la `base` definida. Si es una lista, itera sobre cada elemento de `n` para realizar la sustitución. El resultado se inserta directamente en el flujo de código (generación de texto).
Análisis de datos

Type : CREATION_INTERNE


El procesamiento es puramente macro-textual y no manipula ninguna tabla SAS.

1 Bloque de código
MACRO
Explicación :
Definición de la macro. Prepara el patrón de palabra, determina el tipo de iteración (numérica o lista) llamando a `%AHGcount`, y luego ejecuta un bucle `%do` para generar las cadenas modificadas a través de `tranwrd`.
¡Copiado!
1%macro AHGwords(word,n,base=1);
2%local AHG4I;
3%IF not %index(&word, @) %THEN %let word=&word @;
4%IF %AHGcount(&n)=1 %THEN
5 %DO AHG4I=%eval(&base) %to %eval(&n+&base-1);
6 %sysfunc(tranwrd(&word, @,&AHG4i))
7 %END;
8%ELSE
9 %DO AHG4i=1 %to %AHGcount(&n) ;
10 %sysfunc(tranwrd(&word, @,%scan(&n,&AHG4i)))
11 %END;
12 
13%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.