Publié le :
Macro EXTERNE

Macro de définition d'objet Hash SAS

Ce code est également disponible en : Deutsch English Español
Cette macro encapsule la syntaxe orientée objet du Data Step SAS© pour les objets Hash. Elle gère dynamiquement l'initialisation des clés (méthode definekey) et des variables de données (méthode definedata) à partir de listes de variables fournies en paramètres. Elle charge automatiquement l'objet Hash avec le dataset spécifié.
Analyse des données

Type : EXTERNE


La macro attend un nom de dataset en paramètre (&dataset) pour charger l'objet Hash. Ce dataset doit exister dans la session SAS lors de l'exécution de la macro.

1 Bloc de code
DATA STEP
Explication :
Définition de la macro 'create_hash'. Elle déclare un objet Hash lié à un dataset. Elle boucle sur la liste des variables clés pour configurer 'definekey' et sur la liste des variables de données pour configurer 'definedata', avant de finaliser la définition avec 'definedone'.
Copié !
1%macro create_hash(name,key,data_vars,dataset);
2 declare hash &name(dataset:&dataset);
3 %local i n d;
4 %let n=%sysfunc(countw(&key));
5 rc = &name..definekey(
6 %DO i=1 %to %eval(&n-1);
7 "%scan(&key,&i)",
8 %END;
9 "%scan(&key,&i)"
10 );
11 %let n=%sysfunc(countw(&data_vars));
12 %DO i=1 %to &n;
13 %let d=%scan(&data_vars,&i);
14 rc = &name..definedata("&d");
15 %END;
16 rc = &name..definedone();
17%mend;
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 : Copyright (c) 2015 by The Financial Risk Group, Cary, NC, USA.