Veröffentlicht am :
Dienstprogramm CREATION_INTERNE

SAS _DATA Makro: Extrahieren des Tabellennamens

Dieser Code ist auch verfügbar auf: Français English Español
Das Makro `_DATA` nimmt ein einziges Argument, `arg1`, das eine SAS©-Tabellenreferenz darstellt (z.B. 'bibliothek.tabelle' oder 'einfache_tabelle'). Es analysiert diesen String, um festzustellen, ob er einen Punkt ('.') enthält, der das Vorhandensein eines Bibliothekspräfixes anzeigt. Wenn ein Punkt erkannt wird, verwendet es die `%scan`-Funktion, um den zweiten Teil des Strings (den Tabellennamen) nach dem Punkt zu extrahieren. Wenn kein Punkt gefunden wird, wird der gesamte String als Tabellenname betrachtet. In beiden Fällen wird die `%lowcase`-Funktion angewendet, um den resultierenden Tabellennamen in Kleinbuchstaben umzuwandeln. Eventuelle Tabellenoptionen (z.B. `(obs=1)`) werden durch diese Extraktionslogik implizit ignoriert.
Datenanalyse

Type : CREATION_INTERNE


Das Makro `_DATA` ist eine Dienstprogrammfunktion, die als Argument übergebene Zeichenketten manipuliert. Es liest oder schreibt nicht direkt in vorhandene SAS-Tabellen. Seine Eingaben sind Zeichenketten, die SAS-Tabellenreferenzen darstellen, und seine Ausgabe ist eine Zeichenkette, die dem extrahierten Tabellennamen entspricht.

1 Codeblock
Makrodefinition `_DATA`
Erklärung :
Dieser Block definiert das Makro `_DATA`. Er verwendet eine bedingte Anweisung `%if` mit `%index`, um das Vorhandensein eines Punktes ('.') im Argument `&arg1` zu überprüfen. Wenn ein Punkt vorhanden ist, extrahiert die Makrofunktion `%scan` das zweite Element der Zeichenkette (den Tabellennamen) unter Verwendung des Punktes und des öffnenden Klammerzeichens `%str(()` als Trennzeichen zur Behandlung von Tabellenoptionen. Andernfalls extrahiert `%scan` das erste Element unter Verwendung nur des öffnenden Klammerzeichens als Trennzeichen. Die Funktion `%lowcase` wird auf das Ergebnis angewendet, um sicherzustellen, dass der Tabellenname in Kleinbuchstaben zurückgegeben wird. Das Zeichen `%str(%)` wird verwendet, um die öffnende Klammer innerhalb von `%scan` zu escapen.
Kopiert!
1%macro _data(arg1);
2 
3%IF %index(&arg1, .) %THEN %lowcase(%scan(&arg1, 2, .%str(%())));
4%ELSE %lowcase(%scan(&arg1, 1, %str(%())));
5 
6%mend _data;
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) 2001-2007 Rodney Sparapani. Dieser Code ist freie Software, die unter den Bedingungen der GNU General Public License, Version 2 oder höher, weitergegeben und modifiziert werden darf.