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.
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.