Este artículo explica cómo distinguir una macro variable vacía (nula) de una macro variable que contiene un punto, y cómo realizar estas pruebas correctamente.
Es crucial comprender la naturaleza de su variable:
Macro variable vacía (Nula): No contiene ningún carácter.
Ejemplo: %let maVar = ;
Macro variable que contiene un punto: Contiene el carácter ".". Para el procesador de macros, es una cadena de caracteres de longitud 1, no un valor faltante.
Ejemplo: %let maVar = .;
Si prueba %if &maVar = ., está verificando literalmente si la variable contiene el carácter "punto", y no si está vacía.
Método 1: Usar la función %LENGTH (Recomendado)
El método más robusto para verificar si una macro variable está "vacía" o "nula" es probar su longitud.
Para verificar si una variable está vacía:
%if %length(&maVar) = 0 %then %do;
%put La variable est vide.;
%end;
1
%IF %LENGTH(&maVar) = 0 %THEN %DO;
2
3
%put La variable est vide.;
4
5
%END;
6
Para verificar si una variable contiene un valor (no vacía):
Un punto (.) es un carácter, no un valor faltante en el sentido de macro.
Utilice %if %length(&var) = 0 para probar un valor nulo (vacío).
Para profundizar en el tema de los valores faltantes y lógicos en las macros, los trabajos de Chung y King sobre el tema son referencias técnicas sólidas.
Avertissement important
Les codes et exemples fournis sur WeAreCAS.eu sont à but pédagogique. Il est impératif de ne pas les copier-coller aveuglément sur vos environnements de production. La meilleure approche consiste à comprendre la logique avant de l'appliquer. Nous vous recommandons vivement de tester ces scripts dans un environnement de test (Sandbox/Dev). WeAreCAS décline toute responsabilité quant aux éventuels impacts ou pertes de données sur vos systèmes.
SAS et tous les autres noms de produits ou de services de SAS Institute Inc. sont des marques déposées ou des marques de commerce de SAS Institute Inc. aux États-Unis et dans d'autres pays. ® indique un enregistrement aux États-Unis. WeAreCAS est un site communautaire indépendant et n'est pas affilié à SAS Institute Inc.
Ce site utilise des cookies techniques et analytiques pour améliorer votre expérience.
En savoir plus.