Veröffentlicht am :
Makro MIXTE

Makro makehash - Initialisierung von Hash-Objekten

Dieser Code ist auch verfügbar auf: English Español Français
Dieses Makro soll die Deklaration von Hash-Objekten (Hash Objects) in einem Data-Schritt vereinfachen. Es verwaltet die Deklaration, die Definition von Schlüsseln und Datenvariablen sowie die Initialisierung von Variablen über 'call missing'.
Technische Anmerkung: Der bereitgestellte Code enthält eine Abhängigkeit von externen, hier nicht definierten Unter-Makros (%cvarlens, %quotelst, %commas). Darüber hinaus scheint es eine Inkonsistenz im Makro-Körper zu geben: Die Methoden (defineKey, defineData) werden auf den Literal-Bezeichner 'class' statt auf den Makro-Parameter '&hashname' aufgerufen, was seine Funktionsweise einschränken würde, wenn das Objekt nicht 'class' heißt.
Datenanalyse

Type : MIXTE


Das Makro wurde entwickelt, um jedes SAS-Dataset, das durch den Parameter '&ds' angegeben wird, in das Hash-Objekt zu laden.

1 Codeblock
MACRO
Erklärung :
Definition des Makros. Es bereitet die Variablenlängen vor (über %cvarlens), instanziiert das Hash-Objekt, das auf das Dataset '&ds' zeigt, definiert die Schlüssel und Daten (über die Methoden .defineKey und .defineData) und schließt mit .defineDone ab. Der Aufruf 'call missing' verhindert Meldungen über nicht initialisierte Variablen.
Kopiert!
1%macro makehash(hashname,ds,keyvars,datavars);
2LENGTH %cvarlens(&ds,&datavars);
3IF _n_=1 THEN DO;
4 declare hash &hashname(dataset: "&ds");
5 _rc = class.defineKey(%commas(%quotelst(&keyvars)));
6 _rc = class.defineData(%commas(%quotelst(&datavars)));
7 _rc = class.defineDone();
8 call missing(%commas(&datavars));
9END;
10%mend makehash;
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 : Author: Roland Rashleigh-Berry (2014) - Public domain software.