Veröffentlicht am :
Berichterstattung CREATION_INTERNE

Bericht über Variablenmetadaten

Dieser Code ist auch verfügbar auf: English Español Français
Wartet auf Validierung
Dieses SAS©-Makro, `MetaShort`, akzeptiert den Namen einer SAS©-Bibliothek (`lib`) als Parameter. Wenn kein Bibliotheksname angegeben wird, wird der Wert der Makrovariablen `&pname` verwendet. Es beginnt mit der Definition eines benutzerdefinierten Formats zur Anzeige der Variablentypen ('Char' für Zeichen, 'Num' für numerisch). Anschließend wird `PROC DATASETS` verwendet, um die Metadaten aller Datentabellen der angegebenen Bibliothek zu sammeln und in einer temporären Tabelle namens `WORK.TEMP` zu speichern. Eine `PROC SQL`-Abfrage wird dann ausgeführt, um den physischen Pfad der Bibliothek aus `DICTIONARY.MEMBERS` abzurufen. Der Bericht wird als HTML5 (`meta.html`) in diesem physischen Pfad über `PROC REPORT` unter Verwendung der Tabelle `WORK.TEMP` generiert. Der Bericht zeigt den Datensatznamen, den Variablennamen, seinen Typ (formatiert), seine Länge, sein Format, sein Informat und seine Beschriftung an. Zur besseren Lesbarkeit wird eine leere Zeile zwischen den Variablengruppen für jeden Datensatz eingefügt. Schließlich werden die ODS-Ziele geschlossen und zurückgesetzt.
Datenanalyse

Type : CREATION_INTERNE


Die Quelldaten für den Bericht werden intern von `PROC DATASETS` generiert, das die Metadaten aus den Tabellen der vom Benutzer angegebenen Bibliothek extrahiert. `DICTIONARY.MEMBERS` ist eine SAS-Systemansicht, die verwendet wird, um den Bibliotheks-Pfad abzurufen.

1 Codeblock
Macro
Erklärung :
Definition des Makros `MetaShort`, das einen Parameter `lib` akzeptiert. Wenn `lib` leer ist, wird die Makrovariable `&pname` als Standardwert für die Bibliothek verwendet.
Kopiert!
1%macro MetaShort(lib);
2%IF %superq(lib)= %THEN %let lib=&pname;
3 
2 Codeblock
PROC FORMAT
Erklärung :
Erstellt ein benutzerdefiniertes Format `type.`, um die numerischen Werte 1 und 2 als Zeichenketten ('Num' und 'Char') anzuzeigen, die die Variablentypen darstellen.
Kopiert!
1 PROC FORMAT;
2 value type 2="Char"
3 1 = "Num";
4 RUN;
3 Codeblock
PROC DATASETS Data
Erklärung :
Verwendet `PROC DATASETS`, um die Metadaten aller Datentabellen (`memtype=data`) der angegebenen Bibliothek (`&lib`) zu extrahieren. Die Inhaltsinformationen werden in der temporären Tabelle `WORK.TEMP` gespeichert.
Kopiert!
1 PROC DATASETS library=&lib memtype=DATA ;
2 contents DATA=_all_ out=work.temp ;
3 RUN;
4 QUIT;
4 Codeblock
PROC SQL
Erklärung :
Eine `PROC SQL`-Abfrage wird ausgeführt, um den physischen Pfad (`path`) der Bibliothek (`&lib`) aus der Systemansicht `DICTIONARY.MEMBERS` abzurufen. Der Pfad wird in der Makrovariablen `&libpath` gespeichert und Leerzeichen werden entfernt.
Kopiert!
1 PROC SQL noprint;
2 select path into: libpath
3 from Dictionary.members
4 where LIBNAME =upcase("&lib");
5 QUIT;
6 
7 %let libpath=%sysfunc(strip(&libpath));
5 Codeblock
PROC REPORT
Erklärung :
Bereitet das ODS HTML5-Ziel vor, um eine Datei `meta.html` im Bibliotheks-Pfad zu erstellen. `PROC REPORT` verwendet die Tabelle `WORK.TEMP`, um den Bericht zu generieren. Es werden Spalten für den Datensatznamen, den Variablennamen, seinen Typ (formatiert), seine Länge, sein Format, sein Informat und seine Beschriftung angezeigt. Nach jeder Variablengruppe für einen bestimmten Datensatz wird eine leere Zeile hinzugefügt. Die ODS-Ziele werden anschließend geschlossen und zurückgesetzt.
Kopiert!
1 title "Datasets in &lib";
2 odds html5 path="&libpath" (url="")
3 body="meta.html";
4 PROC REPORT DATA=work.temp headline headskip spacing=2 ;
5 columns memname name type LENGTH FORMAT informat label;
6 define memname /order order=DATA "Dataset" ;
7 define name /display "Variable";
8 define type /display FORMAT=type. "Type";
9 define LENGTH /display "Length";
10 define FORMAT /display "Format";
11 define informat /display "Informat";
12 define label /display "Label";
13 compute after memname;
14 line ' ';
15 endcomp;
16 RUN;
17 odds html5 close;
18 odds html;
19 title ;
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 : ************************************************************************* * MetaShort * report the metadata of variables in the given lib including name, type, * length, format, informat, and label * *************************************************************************