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.
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!
data &out(drop=ahuigeID3498273456);
set &out;
by &by;
if first.%scan(&by,%AHGcount(&by)) then ahuigeID3498273456=1;
else ahuigeID3498273456+1;
if &m<ahuigeID3498273456<=&n then output;
run;
1
DATA &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;
7
RUN;
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.
SAS und alle anderen Produkt- oder Dienstleistungsnamen von SAS Institute Inc. sind eingetragene Marken oder Marken von SAS Institute Inc. in den USA und anderen Ländern. ® zeigt die Registrierung in den USA an. WeAreCAS ist eine unabhängige Community-Site und nicht mit SAS Institute Inc. verbunden.
Diese Website verwendet technische und analytische Cookies, um Ihre Erfahrung zu verbessern.
Mehr erfahren.