Veröffentlicht am :
Macro EXTERNE

SAS Hash-Objekt Definitionsmakro

Dieser Code ist auch verfügbar auf: English Español Français
Dieses Makro kapselt die objektorientierte Syntax des SAS© Data Step für Hash-Objekte. Es verwaltet dynamisch die Initialisierung von Schlüsseln (definekey-Methode) und Datenvariablen (definedata-Methode) aus Parameterlisten von Variablen. Es lädt das Hash-Objekt automatisch mit dem angegebenen Datensatz.
Datenanalyse

Type : EXTERNE


Das Makro erwartet einen Datensatznamen als Parameter (&dataset), um das Hash-Objekt zu laden. Dieser Datensatz muss während der Ausführung des Makros in der SAS-Sitzung vorhanden sein.

1 Codeblock
DATA STEP
Erklärung :
Definition des Makros 'create_hash'. Es deklariert ein Hash-Objekt, das mit einem Datensatz verknüpft ist. Es durchläuft die Liste der Schlüsselvariablen, um 'definekey' zu konfigurieren, und die Liste der Datenvariablen, um 'definedata' zu konfigurieren, bevor die Definition mit 'definedone' abgeschlossen wird.
Kopiert!
1%macro create_hash(name,key,data_vars,dataset);
2 declare hash &name(dataset:&dataset);
3 %local i n d;
4 %let n=%sysfunc(countw(&key));
5 rc = &name..definekey(
6 %DO i=1 %to %eval(&n-1);
7 "%scan(&key,&i)",
8 %END;
9 "%scan(&key,&i)"
10 );
11 %let n=%sysfunc(countw(&data_vars));
12 %DO i=1 %to &n;
13 %let d=%scan(&data_vars,&i);
14 rc = &name..definedata("&d");
15 %END;
16 rc = &name..definedone();
17%mend;
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 by The Financial Risk Group, Cary, NC, USA.