Veröffentlicht am :
Makro MIXTE

Makro AHGkeepvar: Auswahl von Variablen nach Position

Dieser Code ist auch verfügbar auf: English Español Français
Wartet auf Validierung
Dieses Makro generiert dynamisch einen DATA-Schritt, um Variablen einer Eingabetabelle (`dsn`) zu filtern. Anstatt die Variablennamen aufzulisten, gibt der Benutzer eine Liste von Indizes (`IDs`) an. Das Makro stützt sich auf Drittanbieter-Makros (`AHGvarlist`, `AHGblank`, `AHGbarename`, `ahgcount`), um die Liste der Variablennamen abzurufen und die entsprechende `KEEP`-Klausel zu erstellen.
Datenanalyse

Type : MIXTE


Das Makro verarbeitet eine als Parameter (`dsn`) übergebene SAS-Tabelle. Die Quelle hängt somit vom Aufruf des Makros ab.

1 Codeblock
DATA STEP Data
Erklärung :
Dieser Block definiert das Makro. Es beginnt mit der Bestimmung des Namens der Ausgabetabelle. Anschließend wird die Liste der Variablen der Quelltabelle über `%AHGvarlist` abgerufen. Der Kern der Verarbeitung ist eine `%do`-Schleife innerhalb der `keep=`-Anweisung, die jeden in `IDs` angegebenen numerischen Index über verschachtelte `%scan`-Funktionen in den entsprechenden Variablennamen übersetzt.
Kopiert!
1%macro AHGkeepvar(dsn,IDs,out=);
2 %IF %AHGblank(&out) %THEN %let out=%AHGbarename(&dsn);
3 %local i count varlist;
4 %AHGvarlist(&dsn,Into=varlist,dlm=%str( ),global=0);
5 %let count=%ahgcount(&ids);
6 DATA &out;
7 SET &dsn(keep=
8 %DO i=1 %to &count;
9 %scan(&varlist,%scan(&IDs,&i))
10 %END;
11 );
12 RUN;
13
14%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.