Publicado el :
Macro MIXTE

Macro makehash - Inicialización de objetos Hash

Este código también está disponible en: Deutsch English Français
Esta macro tiene como objetivo simplificar la declaración de objetos Hash (Hash Objects) en un paso Data. Gestiona la declaración, la definición de claves y variables de datos, así como la inicialización de variables a través de 'call missing'.
Nota técnica: El código proporcionado contiene una dependencia de sub-macros externas no definidas aquí (%cvarlens, %quotelst, %commas). Además, parece haber una inconsistencia en el cuerpo de la macro: los métodos (defineKey, defineData) se llaman en el identificador literal 'class' en lugar de usar el parámetro de macro '&hashname', lo que restringiría su funcionamiento si el objeto no se llama 'class'.
Análisis de datos

Type : MIXTE


La macro está diseñada para cargar cualquier dataset SAS especificado por el parámetro '&ds' en el objeto Hash.

1 Bloque de código
MACRO
Explicación :
Definición de la macro. Prepara las longitudes de las variables (a través de %cvarlens), instancia el objeto Hash apuntando al dataset '&ds', define las claves y los datos (a través de los métodos .defineKey y .defineData), y finaliza con .defineDone. La llamada 'call missing' evita los mensajes de variables no inicializadas.
¡Copiado!
1%macro makehash(hashname,ds,keyvars,datavars);
2LENGTH %cvarlens(&ds,&datavars);
3IF _n_=1 THEN DO;
4 declare hash &hashname(dataset: "&ds");
5 _rc = class.defineKey(%commas(%quotelst(&keyvars)));
6 _rc = class.defineData(%commas(%quotelst(&datavars)));
7 _rc = class.defineDone();
8 call missing(%commas(&datavars));
9END;
10%mend makehash;
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 : Author: Roland Rashleigh-Berry (2014) - Public domain software.