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.
Aviso importante
Los códigos y ejemplos proporcionados en WeAreCAS.eu son con fines educativos. Es imperativo no copiarlos y pegarlos ciegamente en sus entornos de producción. El mejor enfoque es comprender la lógica antes de aplicarla. Recomendamos encarecidamente probar estos scripts en un entorno de prueba (Sandbox/Dev). WeAreCAS no acepta ninguna responsabilidad por cualquier impacto o pérdida de datos en sus sistemas.
SAS y todos los demás nombres de productos o servicios de SAS Institute Inc. son marcas registradas o marcas comerciales de SAS Institute Inc. en los EE. UU. y otros países. ® indica registro en los EE. UU. WeAreCAS es un sitio comunitario independiente y no está afiliado a SAS Institute Inc.
Este sitio utiliza cookies técnicas y analíticas para mejorar su experiencia.
Saber más.