El script crea un conjunto de datos de demostración `sample_adsl` que contiene información sobre los sujetos y sus grupos de tratamiento (`trta`, `trtan`). Luego se define una macro `%count`, que toma como parámetros el conjunto de datos de entrada, las variables a considerar para la clasificación y el conteo, así como el rango numérico de los grupos de tratamiento. La macro utiliza `PROC SQL` para contar los sujetos distintos (`usubjid`) para cada grupo de tratamiento en el rango especificado y almacena estos conteos en variables macro globales (por ejemplo, `bign0`, `bign1`, etc.). Finalmente, la macro se llama con los parámetros apropiados para el conjunto de datos `sample_adsl` y los grupos de tratamiento del 0 al 3.
Análisis de datos
Type : CREATION_INTERNE
El conjunto de datos `sample_adsl` se crea directamente en el script usando un paso DATA. No depende de fuentes de datos externas no administradas o de bibliotecas SASHELP.
1 Bloque de código
DATA STEP Data
Explicación : Este paso DATA crea el conjunto de datos `sample_adsl`. Está poblado con cinco observaciones, cada una representando un sujeto (`usubjid`) asignado a un grupo de tratamiento (`trta` con su versión numérica `trtan`). Este conjunto de datos sirve como base de prueba para el conteo de sujetos.
Explicación : Esta macro llamada `%count` está diseñada para contar sujetos distintos. Admite un conjunto de datos de entrada (`data`), variables de conteo y clasificación (`var`), y un rango de grupos de tratamiento (`trts` a `trte`). Dentro de la macro, `PROC SQL` se utiliza para crear una tabla temporal `count` y luego, a través de un bucle `%do`, iterar sobre cada grupo de tratamiento. Para cada grupo, cuenta los sujetos únicos (`usubjid`) y almacena el resultado en una variable macro global dinámica (por ejemplo, `bign0`, `bign1`). Los resultados se muestran en el registro SAS a través de `%put`.
¡Copiado!
%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 Bloque de código
APPEL MACRO %COUNT
Explicación : Esta llamada ejecuta la macro `%count`. Proporciona el conjunto de datos `sample_adsl` creado anteriormente, especifica las variables `trtan`, `trta` y `usubjid` para la operación, y solicita el conteo para los grupos de tratamiento del 0 al 3. Esto generará variables macro globales como `bign0`, `bign1`, `bign2`, `bign3` que contendrán los conteos de sujetos para cada grupo respectivo.
Este material se proporciona "tal cual" por We Are Cas. No hay garantías, expresas o implícitas, en cuanto a la comerciabilidad o idoneidad para un propósito particular con respecto a los materiales o el código contenidos en este documento. We Are Cas no es responsable de los errores en este material tal como existe ahora o existirá, ni We Are Cas proporciona soporte técnico para el mismo.
Información de copyright : 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 y todos los demás nombres de productos o servicios de SAS Institute Inc. son marcas registradas o marcas comerciales de SAS Institute Inc. en los EE. UU. y otros países. ® indica registro en los EE. UU. WeAreCAS es un sitio comunitario independiente y no está afiliado a SAS Institute Inc.
Este sitio utiliza cookies técnicas y analíticas para mejorar su experiencia.
Saber más.