Los ejemplos utilizan datos generados (paso DATA con DATALINES) para simular las tablas `product_list` y `supplier`.
1 Bloque de código
DATA STEP Data
Explicación : Este bloque de código DATA step crea el conjunto de datos `work.product_list` utilizando datos en línea (DATALINES). Define las variables `Product_Id`, `Product_Name` y `Supplier_ID` con sus tipos y longitudes respectivas. Los espacios y caracteres especiales en `Product_Name` han sido reemplazados por guiones bajos para una mejor gestión a través de DATALINES.
Explicación : Este bloque de código DATA step crea el conjunto de datos `work.supplier` utilizando datos en línea (DATALINES). Define las variables `Supplier_ID`, `Supplier_Name`, `Supplier_Address` y `Country` con sus tipos y longitudes respectivas. Los espacios y caracteres especiales han sido reemplazados por guiones bajos para una mejor gestión a través de DATALINES.
¡Copiado!
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 Bloque de código
DATA STEP / PROC PRINT
Explicación : 1. Incluye una instrucción LENGTH para asegurarse de que las variables `Supplier_Name`, `Supplier_Address` y `Country` estén definidas en el PDV (Program Data Vector).
2. Durante la primera iteración del paso DATA, declara el objeto hash `S`. Asigna `Supplier_ID` como clave del objeto hash. Incluye los valores de `Supplier_Name`, `Supplier_Address` y `Country` del conjunto de datos `work.supplier`.
3. Dado que `Supplier_Name`, `Supplier_Address` y `Country` no se asignan explícitamente a valores iniciales, SAS escribe una NOTA en el registro indicando que las variables no están inicializadas. `CALL MISSING` suprime esta NOTA.
4. Lee una observación del conjunto de datos `product_list`.
5. Se llama al método `FIND` para verificar si el `Supplier_ID` de `product_list` coincide con la clave `Supplier_ID` de alguna de las entradas del objeto hash. Si hay una coincidencia (`rc=0`), la observación se escribe en el conjunto de datos `supplier_info`.
El PROC PRINT muestra a continuación el contenido del conjunto de datos `supplier_info`.
¡Copiado!
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;
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.
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.