Esta macro, `assert_not_empty`, sirve como rutina de aserción. Primero verifica la existencia del conjunto de datos pasado a través del parámetro `DS`. Si el conjunto de datos no existe, o si existe pero no contiene ninguna observación, se desencadena un evento mediante la llamada a una macro externa `%generate_event`. Los detalles de este evento (mensaje, nivel, tipo, etc.) pueden personalizarse a través de parámetros. Si no se proporciona ningún mensaje personalizado, se genera automáticamente un mensaje predeterminado para indicar la naturaleza del problema (inexistente o vacío).
Análisis de datos
Type : EXTERNE
La macro está diseñada para operar sobre un conjunto de datos cuyo nombre se proporciona a través del parámetro `DS`, que es, por lo tanto, externo a la macro misma. Su funcionamiento también depende de la macro `%generate_event`, que no está definida en este script y debe estar disponible en el entorno SAS.
1 Bloque de código
Macro
Explicación : Este bloque define la macro `assert_not_empty`. Utiliza las funciones macro `%exist` para verificar si el conjunto de datos existe y `%obs` para contar las observaciones. Si el conjunto de datos es inexistente o está vacío, una variable local `EVENT_COUNT` se establece en 1. En este caso, se llama a la macro externa `%generate_event` para señalar la anomalía, transmitiéndole los parámetros correspondientes. La variable global `futs_tst_cnt` se incrementa, lo que sugiere que esta macro forma parte de un marco de pruebas más amplio.
%IF &MESSAGE = %str() %THEN %let MESSAGE = DATASET &DS does not exist;
20
%END;
21
%ELSE %DO;
22
%IF %obs(&DS) eq 0 %THEN %DO;
23
%let EVENT_COUNT = 1;
24
%IF &MESSAGE = %str() %THEN
25
%let MESSAGE = DATASET &DS is empty;
26
%END;
27
%END;
28
29
%let futs_tst_cnt = %eval(&futs_tst_cnt.+1);
30
31
%IF &EVENT_COUNT gt 0 %THEN
32
%generate_event(TYPE=&TYPE, LEVEL=&LEVEL,
33
MESSAGE=&MESSAGE,
34
ATTACHDATA=&ATTACHDATA, ATTACHFILE=&ATTACHFILE,
35
METRIC=&METRIC,
36
PROPERTIES=&PROPERTIES,
37
ON_EVENT=&ON_EVENT,
38
DESCRIPTION=&DESCRIPTION, ABORT=&ABORT);
39
40
%mend assert_not_empty;
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 : Copyright (c) 2015 John Jacobs. All rights reserved.
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.