Veröffentlicht am :
Makro MIXTE

Makro hasvarsc - Überprüfung auf das Vorhandensein von Zeichenvariablen

Dieser Code ist auch verfügbar auf: English Español Français
Dieses funktionsartige Makro überprüft das Vorhandensein einer Liste von Zeichenvariablen in einem angegebenen SAS©-Dataset. Es basiert auf den Unter-Makros '%match' und '%varlistc'. Wenn Variablen nicht übereinstimmen, werden sie in der globalen Makrovariable '_nomatch_' gespeichert. Das Makro verwaltet die Groß- und Kleinschreibung über den Parameter 'casesens'.
Datenanalyse

Type : MIXTE


Das Makro verwendet keine Hardcoded-Daten, sondern arbeitet mit dem als Parameter übergebenen Dataset (Argument 'ds'). Es analysiert die Metadaten (Variablennamen) dieses Datasets.

1 Codeblock
MACRO
Erklärung :
Definition des Makros '%hasvarsc'. Es initialisiert die Parameter, ruft das Makro '%varlistc' auf, um die Zeichenvariablen des Ziel-Datasets zu erhalten, und verwendet das Makro '%match' um diese Liste mit der erforderlichen Liste ('varlist') zu vergleichen. Es gibt 1 zurück, wenn alle Variablen gefunden wurden, andernfalls 0 (mit einer Warnmeldung, wenn keine Zeichenvariable in der Quelle vorhanden ist).
Kopiert!
1%put MACRO CALLED: hasvarsc v2.0;
2 
3%macro hasvarsc(ds,varlist,casesens=no);
4 %local varmatch varlistc;
5 %IF not %LENGTH(&casesens) %THEN %let casesens=no;
6 %let casesens=%upcase(%substr(&casesens,1,1));
7 %let varlistc=%varlistc(&ds);
8 %IF not %LENGTH(&varlistc) %THEN %DO;
9%put NOTE: (hasvarsc) There are no character variables in the INPUT dataset therefore;
10%put NOTE: (hasvarsc) the character variable(s) you are testing for will not be found.;
11 %let varmatch=%match(,&varlist,casesens=&casesens);
120
13 %END;
14 %ELSE %DO;
15 %let varmatch=%match(&varlistc,&varlist,casesens=&casesens);
16 %IF not %LENGTH(&_nomatch_) %THEN 1;
17 %ELSE 0;
18 %END;
19%mend hasvarsc;
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 : Roland Rashleigh-Berry (Public Domain)