Veröffentlicht am :
Makro EXTERNE

Makro AHGkeepN - Sequenzielle Filterung nach Gruppe

Dieser Code ist auch verfügbar auf: English Español Français
Wartet auf Validierung
Das Makro `AHGkeepN` filtert einen Datensatz, um nur die ersten N Beobachtungen (oder einen durch m und n definierten Bereich) für jede eindeutige Kombination der im Parameter `by` angegebenen Variablen beizubehalten. Es sortiert zuerst die Daten und verwendet dann einen internen Zähler in einem Data Step, um die gewünschten Zeilen auszuwählen. Es scheint von externen Hilfsmakros (`%AHGblank`, `%AHGbarename`, `%AHGcount`) abzuhängen, die in diesem Skript nicht definiert sind.
Datenanalyse

Type : EXTERNE


Der Datensatz wird dynamisch über den Parameter `dsn` beim Aufruf des Makros spezifiziert.

1 Codeblock
PROC SORT Data
Erklärung :
Sortiert die Eingabetabelle (`dsn`) nach den Gruppierungsvariablen (`by`) und speichert das Ergebnis in der Ausgabetabelle (`out`). Falls `out` nicht angegeben ist, wird ein Name von `dsn` abgeleitet.
Kopiert!
1%IF %AHGblank(&out) %THEN %let out=%AHGbarename(&dsn);
2PROC SORT DATA=&dsn out=&out;
3 BY &BY;
4RUN;
2 Codeblock
DATA STEP Data
Erklärung :
Liest die sortierte Tabelle und verwendet einen temporären Zähler (`ahuigeID3498273456`), um die Beobachtungen innerhalb jeder durch die letzte Variable der `by`-Liste definierten Gruppe zu nummerieren. Es werden nur die Beobachtungen beibehalten, deren Rang strikt größer als `m` und kleiner oder gleich `n` ist.
Kopiert!
1DATA &out(drop=ahuigeID3498273456);
2 SET &out;
3 BY &BY;
4 IF first.%scan(&BY,%AHGcount(&BY)) THEN ahuigeID3498273456=1;
5 ELSE ahuigeID3498273456+1;
6 IF &mTHEN OUTPUT;
7RUN;
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.