Publicado el :
Macro CREATION_INTERNE

Macro WHEROBS - Conteo filtrado de observaciones

Este código también está disponible en: Deutsch English Français
Esta macro determina el número de filas de una tabla. Si no se especifica ningún filtro, delega el conteo a otra macro llamada '%numobs'. Si se proporciona un filtro, utiliza las funciones del sistema (OPEN, ATTRN parametrizado con 'NLOBSF', CLOSE) para obtener el número de observaciones lógicas que cumplen la condición, lo que suele ser más eficiente que un paso DATA o un SQL COUNT(*).
Análisis de datos

Type : CREATION_INTERNE


El script define únicamente una lógica de programación (macro) sin acceder a datos específicos durante su compilación.

1 Bloque de código
MACRO
Explicación :
Definición de la macro 'wherobs'. Verifica si el parámetro 'mywhere' está vacío. Si es así, llama a '%numobs'. De lo contrario, abre la tabla a través de %sysfunc(open(...)) con el filtro, recupera el número de observaciones filtradas a través de %sysfunc(attrn(..., nlobsf)) y cierra la tabla.
¡Copiado!
1*m204d08b;
2 
3%macro wherobs(dsn,mywhere);
4 %IF %superq(mywhere)= %THEN %DO;
5 %numobs(&dsn)
6 %return;
7 %END;
8 %local dsid rc;
9 %let dsid=%sysfunc(open(&dsn(where=(&mywhere))));
10 %IF &dsid>0 %THEN %DO;
11 %sysfunc(attrn(&dsid,nlobsf))
12 %let rc=%sysfunc(close(&dsid));
13 %END;
14 %ELSE %put ERROR: Could not open dataset %upcase(&dsn).;
15%mend wherobs;
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.