Les exemples utilisent des données générées (DATA step avec DATALINES) pour simuler les tables `product_list` et `supplier`.
1 Bloc de code
DATA STEP Data
Explication : Ce bloc de code DATA step crée l'ensemble de données `work.product_list` en utilisant des données en ligne (DATALINES). Il définit les variables `Product_Id`, `Product_Name` et `Supplier_ID` avec leurs types et longueurs respectifs. Les espaces et caractères spéciaux dans `Product_Name` ont été remplacés par des underscores pour une meilleure gestion via DATALINES.
Explication : Ce bloc de code DATA step crée l'ensemble de données `work.supplier` en utilisant des données en ligne (DATALINES). Il définit les variables `Supplier_ID`, `Supplier_Name`, `Supplier_Address` et `Country` avec leurs types et longueurs respectifs. Les espaces et caractères spéciaux ont été remplacés par des underscores pour une meilleure gestion via DATALINES.
Copié !
DATA work.supplier;
LENGTH Supplier_ID 8 Supplier_Name $40 Supplier_Address $45 Country $2;
INPUT Supplier_ID Supplier_Name :$40. Supplier_Address :$45. Country $;
DATALINES;
50 Scandinavian_Clothing_A/S Kr._Augusts_Gate_13 NO
316 Prime_Sports_Ltd 9_Carlisle_Place GB
755 Top_Sports Jernbanegade_45 DK
772 AllSeasons_Outdoor_Clothing 553_Cliffview_Dr US
798 Sportico C._Barquillo_1 ES
1280 British_Sports_Ltd 85_Station_Street GB
1303 Eclipse_Inc 1218_Carriole_Ct US
1684 Magnifico_Sports Rua_Costa_Pinto_2 PT
1747 Pro_Sportswear_Inc 2434_Edgebrook_Dr US
3298 A_Team_Sports 2687_Julie_Ann_Ct US
3808 Carolina_Sports 3860_Grand_Ave US
;
RUN;
1
DATA work.supplier;
2
LENGTH Supplier_ID 8 Supplier_Name $40 Supplier_Address $45 Country $2;
3
INPUT Supplier_ID Supplier_Name :$40. Supplier_Address :$45. Country $;
4
DATALINES;
5
50 Scandinavian_Clothing_A/S Kr._Augusts_Gate_13 NO
6
316 Prime_Sports_Ltd 9_Carlisle_Place GB
7
755 Top_Sports Jernbanegade_45 DK
8
772 AllSeasons_Outdoor_Clothing 553_Cliffview_Dr US
9
798 Sportico C._Barquillo_1 ES
10
1280 British_Sports_Ltd 85_Station_Street GB
11
1303 Eclipse_Inc 1218_Carriole_Ct US
12
1684 Magnifico_Sports Rua_Costa_Pinto_2 PT
13
1747 Pro_Sportswear_Inc 2434_Edgebrook_Dr US
14
3298 A_Team_Sports 2687_Julie_Ann_Ct US
15
3808 Carolina_Sports 3860_Grand_Ave US
16
;
17
RUN;
3 Bloc de code
DATA STEP / PROC PRINT
Explication : 1. Inclut une instruction LENGTH pour s'assurer que les variables `Supplier_Name`, `Supplier_Address` et `Country` sont définies dans le PDV (Program Data Vector).
2. Lors de la première itération de l'étape DATA, déclare l'objet de hachage `S`. Attribue `Supplier_ID` comme clé de l'objet de hachage. Inclut les valeurs de `Supplier_Name`, `Supplier_Address` et `Country` de l'ensemble de données `work.supplier`.
3. Étant donné que `Supplier_Name`, `Supplier_Address` et `Country` ne sont pas explicitement affectées de valeurs initiales, SAS écrit une NOTE dans le journal indiquant que les variables ne sont pas initialisées. `CALL MISSING` supprime cette NOTE.
4. Lit une observation de l'ensemble de données `product_list`.
5. La méthode `FIND` est appelée pour vérifier si le `Supplier_ID` de `product_list` correspond à la clé `Supplier_ID` de l'une des entrées de l'objet de hachage. S'il y a une correspondance (`rc=0`), l'observation est écrite dans l'ensemble de données `supplier_info`.
Le PROC PRINT affiche ensuite le contenu de l'ensemble de données `supplier_info`.
Copié !
data supplier_info;
drop rc;
length Supplier_Name $40 Supplier_Address $ 45 Country $ 2; /* 1*/
if _N_=1 then do;
declare hash S(dataset:'work.supplier'); /* 2*/
S.definekey('Supplier_ID');
S.definedata('Supplier_Name',
'Supplier_Address','Country');
S.definedone();
call missing(Supplier_Name,
Supplier_Address,Country); /* 3*/
end;
set work.product_list; /* 4*/
rc=S.find(); /* 5*/
run;
proc print data=supplier_info;
var Product_ID Supplier_ID Supplier_Name
Supplier_Address Country;
title "Product Information";
run;
title;
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.
« Réservez l'objet de hachage pour votre table la plus petite (la table de référence) afin qu'elle puisse tenir entièrement en mémoire vive. Si votre table de référence dépasse la RAM disponible, le système basculera sur le fichier d'échange (swap), et vous perdrez tout le bénéfice de performance. Dans ce cas, revenez à une PROC SORT suivie d'un MERGE »
SAS et tous les autres noms de produits ou de services de SAS Institute Inc. sont des marques déposées ou des marques de commerce de SAS Institute Inc. aux États-Unis et dans d'autres pays. ® indique un enregistrement aux États-Unis. WeAreCAS est un site communautaire indépendant et n'est pas affilié à SAS Institute Inc.
Ce site utilise des cookies techniques et analytiques pour améliorer votre expérience.
En savoir plus.