Dieses Makro, `assert_not_empty`, dient als Assertionsroutine. Es überprüft zuerst die Existenz des über den Parameter `DS` übergebenen Datensatzes. Wenn der Datensatz nicht existiert oder existiert, aber keine Beobachtungen enthält, wird ein Ereignis durch den Aufruf eines externen Makros `%generate_event` ausgelöst. Die Details dieses Ereignisses (Nachricht, Stufe, Typ usw.) können über Parameter angepasst werden. Wird keine benutzerdefinierte Nachricht bereitgestellt, wird automatisch eine Standardnachricht generiert, die die Art des Problems (nicht existent oder leer) angibt.
Datenanalyse
Type : EXTERNE
Das Makro ist darauf ausgelegt, auf einem Datensatz zu operieren, dessen Name über den Parameter `DS` bereitgestellt wird und somit extern zum Makro selbst ist. Seine Funktionsweise hängt auch vom Makro `%generate_event` ab, das in diesem Skript nicht definiert ist und in der SAS-Umgebung verfügbar sein muss.
1 Codeblock
Macro
Erklärung : Dieser Block definiert das Makro `assert_not_empty`. Es verwendet die Makrofunktionen `%exist`, um zu überprüfen, ob der Datensatz existiert, und `%obs`, um seine Beobachtungen zu zählen. Wenn der Datensatz nicht existiert oder leer ist, wird eine lokale Variable `EVENT_COUNT` auf 1 gesetzt. In diesem Fall wird das externe Makro `%generate_event` aufgerufen, um die Anomalie zu melden und die entsprechenden Parameter zu übermitteln. Die globale Variable `futs_tst_cnt` wird inkrementiert, was darauf hindeutet, dass dieses Makro Teil eines größeren Testframeworks ist.
%IF &MESSAGE = %str() %THEN %let MESSAGE = DATASET &DS does not exist;
20
%END;
21
%ELSE %DO;
22
%IF %obs(&DS) eq 0 %THEN %DO;
23
%let EVENT_COUNT = 1;
24
%IF &MESSAGE = %str() %THEN
25
%let MESSAGE = DATASET &DS is empty;
26
%END;
27
%END;
28
29
%let futs_tst_cnt = %eval(&futs_tst_cnt.+1);
30
31
%IF &EVENT_COUNT gt 0 %THEN
32
%generate_event(TYPE=&TYPE, LEVEL=&LEVEL,
33
MESSAGE=&MESSAGE,
34
ATTACHDATA=&ATTACHDATA, ATTACHFILE=&ATTACHFILE,
35
METRIC=&METRIC,
36
PROPERTIES=&PROPERTIES,
37
ON_EVENT=&ON_EVENT,
38
DESCRIPTION=&DESCRIPTION, ABORT=&ABORT);
39
40
%mend assert_not_empty;
Dieses Material wird von We Are Cas "wie besehen" zur Verfügung gestellt. Es gibt keine ausdrücklichen oder stillschweigenden Garantien hinsichtlich der Marktgängigkeit oder Eignung für einen bestimmten Zweck in Bezug auf die hierin enthaltenen Materialien oder Codes. We Are Cas ist nicht verantwortlich für Fehler in diesem Material, wie es jetzt existiert oder existieren wird, noch bietet We Are Cas technischen Support dafür an.
Urheberrechtsinformationen : Copyright (c) 2015 John Jacobs. All rights reserved.
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.