Das Skript erstellt einen Demo-Datensatz `sample_adsl`, der Informationen über Subjekte und deren Behandlungsgruppen (`trta`, `trtan`) enthält. Anschließend wird ein Makro `%count` definiert, das als Parameter den Eingabedatensatz, die für Sortierung und Zählung zu berücksichtigenden Variablen sowie den numerischen Bereich der Behandlungsgruppen entgegennimmt. Das Makro verwendet `PROC SQL`, um die eindeutigen Subjekte (`usubjid`) für jede Behandlungsgruppe im angegebenen Bereich zu zählen und speichert diese Zählergebnisse in globalen Makrovariablen (z.B. `bign0`, `bign1` usw.). Schließlich wird das Makro mit den entsprechenden Parametern für den Datensatz `sample_adsl` und die Behandlungsgruppen 0 bis 3 aufgerufen.
Datenanalyse
Type : CREATION_INTERNE
Der Datensatz `sample_adsl` wird direkt im Skript mithilfe eines DATA-Schritts erstellt. Er hängt nicht von externen, nicht verwalteten Datenquellen oder SASHELP-Bibliotheken ab.
1 Codeblock
DATA STEP Data
Erklärung : Dieser DATA-Schritt erstellt den Datensatz `sample_adsl`. Er wird mit fünf Beobachtungen gefüllt, die jeweils ein Subjekt (`usubjid`) darstellen, das einer Behandlungsgruppe (`trta` mit seiner numerischen Version `trtan`) zugeordnet ist. Dieser Datensatz dient als Testbasis für die Subjektzählung.
Erklärung : Dieses Makro namens `%count` dient dem Zählen eindeutiger Subjekte. Es verarbeitet einen Eingabedatensatz (`data`), Zähl- und Sortiervariablen (`var`) sowie einen Bereich von Behandlungsgruppen (`trts` bis `trte`). Innerhalb des Makros wird `PROC SQL` verwendet, um eine temporäre Tabelle `count` zu erstellen und anschließend mittels einer `%do`-Schleife jede Behandlungsgruppe zu durchlaufen. Für jede Gruppe werden die eindeutigen Subjekte (`usubjid`) gezählt und das Ergebnis in einer dynamischen globalen Makrovariablen (z.B. `bign0`, `bign1`) gespeichert. Die Ergebnisse werden über `%put` im SAS-Log ausgegeben.
Kopiert!
%macro count(data=,var=,trts=,trte=);
proc sql noprint;
create table count as select &var. from &data. order by &var.;
%do i=&trts. %to &trte.;
%global bign&i.;
select count(distinct usubjid) into: bign&i. from count where trtan=&i;
%put bign&i. &&bign&i.;
%end;
quit;
%mend count;
1
%macro count(DATA=,var=,trts=,trte=);
2
PROC SQL noprint;
3
create TABLE count as select &var. from &DATA. order BY &var.;
4
%DO i=&trts. %to &trte.;
5
%global bign&i.;
6
select count(distinct usubjid) into: bign&i. from count where trtan=&i;
7
%put bign&i. &&bign&i.;
8
%END;
9
QUIT;
10
%mend count;
3 Codeblock
APPEL MACRO %COUNT
Erklärung : Dieser Aufruf führt das Makro `%count` aus. Er liefert den zuvor erstellten Datensatz `sample_adsl`, spezifiziert die Variablen `trtan`, `trta` und `usubjid` für den Vorgang und fordert die Zählung für die Behandlungsgruppen von 0 bis 3 an. Dies generiert globale Makrovariablen wie `bign0`, `bign1`, `bign2`, `bign3`, die die Subjektzähler für jede entsprechende Gruppe enthalten.
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 : Program Name : Bign_counter.sas
* Author : Balaji.M
* SAS Version : SAS 9.4 or higher
* Description : This SAS program is use to generate subject counts from adsl dataset with dummy treatment groups
in below example Drug C is counted with dummy values for testing purpose.
*Macro variable : data:- Input Dataset
var:- Variables used for counting and sorting purpose should be included
trts:- treatment group start numeric value
trte:- treatment group end numeric value
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.