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.
Wichtiger Haftungsausschluss
Die auf WeAreCAS.eu bereitgestellten Codes und Beispiele dienen Lehrzwecken. Es ist zwingend erforderlich, sie nicht blind in Ihre Produktionsumgebungen zu kopieren. Der beste Ansatz besteht darin, die Logik zu verstehen, bevor sie angewendet wird. Wir empfehlen dringend, diese Skripte in einer Testumgebung (Sandbox/Dev) zu testen. WeAreCAS übernimmt keine Verantwortung für mögliche Auswirkungen oder Datenverluste auf Ihren Systemen.
SAS und alle anderen Produkt- oder Dienstleistungsnamen von SAS Institute Inc. sind eingetragene Marken oder Marken von SAS Institute Inc. in den USA und anderen Ländern. ® zeigt die Registrierung in den USA an. WeAreCAS ist eine unabhängige Community-Site und nicht mit SAS Institute Inc. verbunden.
Diese Website verwendet technische und analytische Cookies, um Ihre Erfahrung zu verbessern.
Mehr erfahren.