Publié le :
Macro MIXTE

Macro makehash - Initialisation d'objets Hash

Ce code est également disponible en : Deutsch English Español
Cette macro a pour but de simplifier la déclaration d'objets de hachage (Hash Objects) dans une étape Data. Elle gère la déclaration, la définition des clés et des variables de données, ainsi que l'initialisation des variables via 'call missing'.
Note technique : Le code fourni contient une dépendance vers des sous-macros externes non définies ici (%cvarlens, %quotelst, %commas). De plus, il semble y avoir une incohérence dans le corps de la macro : les méthodes (defineKey, defineData) sont appelées sur l'identifiant littéral 'class' au lieu d'utiliser le paramètre macro '&hashname', ce qui restreindrait son fonctionnement si l'objet ne s'appelle pas 'class'.
Analyse des données

Type : MIXTE


La macro est conçue pour charger n'importe quel dataset SAS spécifié par le paramètre '&ds' dans l'objet Hash.

1 Bloc de code
MACRO
Explication :
Définition de la macro. Elle prépare les longueurs de variables (via %cvarlens), instancie l'objet Hash pointant vers le dataset '&ds', définit les clés et données (via les méthodes .defineKey et .defineData), et finalise avec .defineDone. L'appel 'call missing' évite les messages de variables non initialisées.
Copié !
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;
Ce matériel est fourni "tel quel" par We Are Cas. Il n'y a aucune garantie, expresse ou implicite, quant à la qualité marchande ou à l'adéquation à un usage particulier concernant le matériel ou le code contenu dans les présentes. We Are Cas n'est pas responsable des erreurs dans ce matériel tel qu'il existe maintenant ou existera, et We Are Cas ne fournit pas de support technique pour celui-ci.
Informations de Copyright : Author: Roland Rashleigh-Berry (2014) - Public domain software.


Banner
Le Conseil de l'Expert
Expert
Michael
Responsable de l'infrastructure Viya.
« L'utilisation des Hash Objects est l'une des techniques les plus puissantes pour optimiser les performances d'une étape DATA. Contrairement à une jointure MERGE ou SQL classique qui nécessite un tri préalable des données, l'objet Hash stocke les données de référence directement en mémoire vive (RAM), permettant des recherches en temps quasi instantané. »