Publicado el :
Macro MIXTO

Macro hasvarsc - Verificación de presencia de variables de tipo carácter

Este código también está disponible en: Deutsch English Français
Esta macro de estilo funcional verifica la presencia de una lista de variables de tipo carácter en un conjunto de datos SAS© especificado. Se basa en las submácros '%match' y '%varlistc'. Si las variables no coinciden, se almacenan en la variable macro global '_nomatch_'. La macro gestiona la distinción entre mayúsculas y minúsculas a través del parámetro 'casesens'.
Análisis de datos

Type : MIXTO


La macro no utiliza datos codificados de forma rígida, sino que opera sobre el conjunto de datos pasado como parámetro (argumento 'ds'). Analiza los metadatos (nombres de variables) de este conjunto de datos.

1 Bloque de código
MACRO
Explicación :
Definición de la macro '%hasvarsc'. Inicializa los parámetros, llama a la macro '%varlistc' para obtener las variables de tipo carácter del conjunto de datos objetivo y utiliza la macro '%match' para comparar esta lista con la lista requerida ('varlist'). Devuelve 1 si se encuentran todas las variables, de lo contrario 0 (con un mensaje de advertencia si no existe ninguna variable de tipo carácter en el origen).
¡Copiado!
1%put MACRO CALLED: hasvarsc v2.0;
2 
3%macro hasvarsc(ds,varlist,casesens=no);
4 %local varmatch varlistc;
5 %IF not %LENGTH(&casesens) %THEN %let casesens=no;
6 %let casesens=%upcase(%substr(&casesens,1,1));
7 %let varlistc=%varlistc(&ds);
8 %IF not %LENGTH(&varlistc) %THEN %DO;
9%put NOTE: (hasvarsc) There are no character variables in the INPUT dataset therefore;
10%put NOTE: (hasvarsc) the character variable(s) you are testing for will not be found.;
11 %let varmatch=%match(,&varlist,casesens=&casesens);
120
13 %END;
14 %ELSE %DO;
15 %let varmatch=%match(&varlistc,&varlist,casesens=&casesens);
16 %IF not %LENGTH(&_nomatch_) %THEN 1;
17 %ELSE 0;
18 %END;
19%mend hasvarsc;
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 : Roland Rashleigh-Berry (Dominio Público)