Dieser Artikel erklärt Ihnen, wie Sie eine leere (null) Makrovariable von einer Makrovariable, die einen Punkt enthält, unterscheiden und wie Sie diese Tests korrekt durchführen.
Es ist entscheidend, die Art Ihrer Variable zu verstehen:
Leere Makrovariable (Null): Sie enthält keine Zeichen.
Beispiel: %let maVar = ;
Makrovariable, die einen Punkt enthält: Sie enthält das Zeichen „.“. Für den Makroprozessor ist dies eine Zeichenkette der Länge 1, kein fehlender Wert.
Beispiel: %let maVar = .;
Wenn Sie %if &maVar = . testen, prüfen Sie buchstäblich, ob die Variable das Zeichen „Punkt“ enthält, und nicht, ob sie leer ist.
Methode 1: Verwendung der Funktion %LENGTH (Empfohlen)
Die robusteste Methode, um zu überprüfen, ob eine Makrovariable „leer“ oder „null“ ist, besteht darin, ihre Länge zu testen.
Um zu überprüfen, ob eine Variable leer ist:
%if %length(&maVar) = 0 %then %do;
%put Die Variable ist leer.;
%end;
1
%IF %LENGTH(&maVar) = 0 %THEN %DO;
2
3
%put Die Variable ist leer.;
4
5
%END;
6
Um zu überprüfen, ob eine Variable einen Wert enthält (nicht leer):
Ein Punkt (.) ist ein Zeichen, kein fehlender Wert im Sinne von Makros.
Verwenden Sie %if %length(&var) = 0, um auf einen Nullwert (leer) zu testen.
Um das Thema fehlender und logischer Werte in Makros zu vertiefen, sind die Arbeiten von Chung und King zu diesem Thema solide technische Referenzen.
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.